在 Laravel-8 项目中创建数据不起作用,如何解决?

Posted

技术标签:

【中文标题】在 Laravel-8 项目中创建数据不起作用,如何解决?【英文标题】:Create Data in Laravel-8 Project not working, how to solve it? 【发布时间】:2021-03-12 01:52:42 【问题描述】:

我在我的项目laravel中添加数据或创建数据有问题,如何解决?我真的很困惑

这是控制器

     namespace App\Http\Controllers;
    
    use App\Models\DaftarPelanggan;
    use Illuminate\Http\Request;
    use \Illuminate\Http\Response;
    use Illuminate\Validation\Rule;
    use Illuminate\Support\Facades\Validator;
    use Illuminate\Support\Facades\DB;
    use Alert;
    
    class DaftarPelangganController extends Controller
    
    public function validator(Request $request)
        
            return Validator::make($data, [
                'nama_pelanggan' => ['required', 'string', 'max:255'],
                'alamat' => ['required', 'string', 'max:255'],
                'no_telp' => ['required', 'string', 'max:255'],
            ]);
        
    
        public function create(Request $request)
        
            return DaftarPelanggan::create([
                'nama_pelanggan' => $data['addNamaPelanggan'],
                'alamat' => $data['addAlamat'],
                'no_telp' => $data['addNoTelp'],
                'email' => $data['addEmail'],
                'poin' => $data['addPOin'],
                'status_member' => $data['addKategori'],
            ]);
            return redirect()->back();
        
     

这是路由


Route::get('daftar_pelanggan/create','\App\Http\Controllers\DaftarPelangganController@create')->name('daftar_pelanggan.create');

这是按钮刀片

    <button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#editModal">
    <i class="fa fa-edit"></i></button>

这是模态形式


    <!-- Modal  Add -->
          <div class="modal fade" id="addModal" tabindex="-2" role="dialog" aria-labelledby="addModalLabel" aria-hidden="true">
          <div class="modal-dialog modal-dialog-centered" role="document">
            <div class="modal-content">
              <div class="modal-header">
                <h5 class="modal-title mb-0" id="addModalLabel">Tambah Data Pelanggan</h5>
              </div>
              <div class="modal-body">
                <!-- Card body -->
                    <form role="form" action=" route('daftar_pelanggan.create') " method="POST" enctype="multipart/form-data">
                    @csrf
                 <!-- Input groups with icon -->
                     <div class="form-group row">
                        <label for="addNamaPelanggan" class="col-md-2 col-form-label form-control-label">Nama</label>
                        <div class="col-md-10">
                          <input class="form-control" type="nama" placeholder="Nama Lengkap" id="addNamaPelanggan" name="addNamaPelanggan">
                        </div>
                      </div>
                      <div class="form-group row">
                        <label for="addAlamat" class="col-md-2 col-form-label form-control-label">Alamat</label>
                        <div class="col-md-10">
                          <input class="form-control" type="alamat" placeholder="Jatibarang" id="addAlamat" name="addAlamat">
                        </div>
                      </div>
                      <div class="form-group row">
                        <label for="addNoTelp" class="col-md-2 col-form-label form-control-label">No.Telp</label>
                        <div class="col-md-10">
                          <input class="form-control" type="notelp" placeholder="083XXXXXXXXX" id="addNoTelp" name="addNoTelp">
                        </div>
                      </div>
                      <div class="form-group row">
                        <label for="addEmail" class="col-md-2 col-form-label form-control-label">Email</label>
                        <div class="col-md-10">
                        <input type="email" class="form-control" id="addEmail" placeholder="name@example.com" name="addEmail">
                        </div>
                      </div>
                      <div class="form-group row">
                        <div class="col-md-6">
                          <div class="form-group">
                            <label class="form-control-label" for="addPoin">POIN</label>
                            <input type="text" class="form-control" id="addPoin" placeholder="0" name="addPoin">
                          </div>
                        </div>
                        <div class="col-md-6">
                          <div class="form-group">
                            <label class="form-control-label" for="addKategori">Kategori</label>
                              <select class="form-control" id="addKategori" name="addKategori">
                                <option value="silver">Silver</option>
                                <option value="gold">Gold</option>
                                <option value="diamond">Diamond</option>
                              </select>
                          </div>
                        </div>
                      </div>
                    </form>
              </div>
              <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                <button type="submit" class="btn btn-primary">Tambah Data</button>
              </div>
            </div>
          </div>
        </div>

这就是模型


<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class DaftarPelanggan extends Model

    //use HasFactory, Notifiable;

    protected $table = "daftar_pelanggans";
    protected $primaryKey = 'id';
    protected $fillable = [
       'nama_pelanggan',
       'alamat',
       'no_telp',
       'email',
       'poin',
       'status_member',
   ];

请帮帮我谢谢 [模态来自我的项目][1] [1]:https://i.stack.imgur.com/vnSyI.png

【问题讨论】:

Welcome to SO ...你的gettig有什么错误? 按钮 tambah 数据不起作用,控制器创建数据不起作用,我的代码有什么问题? 你试过调试吗? 是的,我有,我认为查询插入它没有执行 “我认为”的范围很广 - 您尝试调试什么问题? 【参考方案1】:

除了您的输入之外,您的submit 按钮必须在您的表单标签内。

【讨论】:

我已经以我的方式回答了他@RushikeshGanesh,看来你已经编辑了自己的答案......所以基本上不是我复制了你的答案。祝你有美好的一天(ps:是的,我是第一个支持你的答案的人)。【参考方案2】:

按钮在表单标签之外,你应该在表单标签里面试试

【讨论】:

谢谢它的工作,但我改变了你的控制器代码 出了什么问题,您的代码如何帮助解决它? @showdev 按钮不在表单内,您可以看到之前的讨论,我正是在其中看到了问题,这个答案实际上对他有用 @showdev 在发表任何评论之前仔细阅读讨论 哪个讨论?在我看来,最有用的答案包括一个独立的解释,而不仅仅是“试试这个”。【参考方案3】:

您正在使用带有“get”方法的路由来访问控制器

Route::get('daftar_pelanggan/create','\App\Http\Controllers\DaftarPelangganController@create')->name('daftar_pelanggan.create');

像这样改成“发帖”

Route::post('daftar_pelanggan/create','\App\Http\Controllers\DaftarPelangganController@create')->name('daftar_pelanggan.create');

【讨论】:

是的,使用 POST 方法而不是 GET 提交表单是一种很好的做法,但这不是确切的问题。但仍然是一个很好的答案。

以上是关于在 Laravel-8 项目中创建数据不起作用,如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

在 Azure 项目中创建附件不起作用

Laravel 8 api post route 无法正常工作

由于文件间依赖关系,在 Xcode 中创建存档不起作用

在 Python 3.4 中创建凯撒密码程序,但函数不起作用

如何使用 Laravel 8 中的工厂在 tinker 中创建虚拟表数据并连接它们?

为啥在 RegisterController 中创建函数在 laravel 中不起作用