首页 > 解决方案 > SQLSTATE [23000]:违反完整性约束:1048 列 'feature_item' & ''status' 不能为空

问题描述

在我检查复选框时的表单中没有错误。但是当我不想检查复选框时,我收到错误 SQLSTATE[23000]: 1048 Column 'feature_item' & ''status' cannot be null。

1.我的产品表:-

public function up()
    {
      Schema::create('products', function (Blueprint $table) {
           $table->increments('id');
           $table->integer('category_id');
           $table->string('product_name');
           $table->string('product_code');
           $table->string('product_color');
           $table->text('description'); 
           $table->boolean('feature_item')->default(0);
           $table->boolean('status')->default(0);
           $table->timestamps();
       });
   }

2.my product.blade.php 这是我的表单

<div class="control-group">
 <label class="control-label">Feature Item</label>
 <div class="controls">
 <input type="checkbox" name="feature_item" id="feature_item" value="1">
</div>
</div>


<div class="control-group">
<label class="control-label">Status</label>
<div class="controls">
<input type="checkbox" name="status" id="status" value="1">
</div>
</div>

3.我的产品控制器

public function addproduct(Request $request){

         $product->category_id=$request['category_id'];
         $product->product_name=$request['product_name'];
         $product->product_code=$request['product_code'];
         $product->product_color=$request['product_color'];
         $product->description=$request['description'];
         $product->feature_item=$request['feature_item'];
         $product->status=$request['status'];

         if (!empty($request['description'])) {
             $product->description = $request['description'];
         } else {

             $product->description = '';
         }

         if(empty($request['feature_item'])){
             $feature_item='0';
         }else{
             $feature_item='1';
         }

         $product->status=$request['status'];
         if (empty($request['status'])) {
             $status = '0';
         } else {
             $status = '1';
         }

         $product->save();
         return back()->with('success','product Upload Successfully!');
         }

我得到这个错误:

SQLSTATE [23000]:违反完整性约束:1048 列 'feature_item' & 'status' 不能为空

有什么帮助吗?

标签: phpsqlarrayslaravelforms

解决方案


这是因为当您不检查复选框时,
没有任何内容发送到您的控制器,名称为feature_item&status
然后您在控制器中的方法尝试插入数据库nothing中的feature_item&解决方案status

1:

修改 DATABASE 可以修改数据库中的表并设置 & 字段的false默认feature_itemstatus

2:

像这样检查控制器中的这两个字段

if (empty($request['feature_item']))
    $product->feature_item = '0';
if (empty($request['status']))
    $product->status = '0';

推荐阅读