sqlstate[23000]:完整性约束冲突:1048列“namaproduct”不能为null

jrcvhitl  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(452)

我对这个请求有些意见。单击“提交”时,出现如下错误:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'namaproduct' cannot be null

这是我的控制器的功能

public function store(Request $request) {
    $product = new Product;
    $product -> namaproduct = $request->namaproduct;
    //...........................
    $product->save();
    return redirect()->route('kontak')->with('alert-success','Data berhasil diTAMBAH!');
}

这是我的魔刀

//..................
<table class="table table-bordered">
            <thead>
            <tr>

                <th>Nama Product</th>
                <th>Deskripsi</th>
                <th>Currency</th>
                <th>Ukuran</th>
                <th>Warna</th>
                <th>Type</th>
                <th>Stok</th>
                <th>Harga Normal</th>
                <th>Harga Diskon</th>
                <th>Aksi</th>

            </tr>
            </thead>
            <tbody>
            @php $no = 1; @endphp
            @foreach($product as $produk)
                <tr>
                    <td>{{ $no++ }}</td>
                    <td>{{ $produk->namaproduct }}</td>
                    <td>{{ $produk->descriptionproduct }}</td>
                    //.....................................

这是我的kontak\u create.blade.php

//.............
<form action="{{ route('kontak.store') }}" method="post">
            {{ csrf_field() }}

            <div class="form-group">
                <label for="email">Nama Product:</label>
                <input type="text" class="form-control" id="product" name="product" required>
            </div>

//..................

为什么我不能插入数据库?

odopli94

odopli941#

也就是说你的专栏 namaproduct 不可为null,这意味着您要为该键提交一个空值。
编辑:在你的dd后,我可以看到你缺少一个值 namaproduct .
您可以通过执行以下操作来简化该方法: Product::create($request->all); ,但错误仍然存在,因为缺少的key=>值 namaproduct => "something" 把它放在你的控制器中,以便查看你提交的内容。

public function store(Request $request) {
     dd($request->all());
     // menggunakan elequent untuk menyimpan ke database

     $product = new Product;

     $product->namaproduct = $request->namaproduct;
     ...........................
     $product->save();

     return redirect()->route('kontak')->with('alert-success','Data berhasil diTAMBAH!');
}
xxslljrj

xxslljrj2#

来自mysql的消息非常明显;)请求中的数据为空。表架构不允许为空 namaproduct . 尝试使用默认值:

$product -> namaproduct = !empty($request->namaproduct) ? $request->namaproduct : 'default value';

另一种方法是向用户抛出某种错误,这样他/她就会知道属性是必需的。

相关问题