SQLSTATE [23000]:完整性约束违规:1048列' cat_id'不能为空

时间:2016-11-30 23:56:25

标签: php laravel

我在向桌子输入数据时收到此错误

class EntryController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */


    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */

    public function entry(Request $request){

        $category = category::create(['cat_name' => $request->input('cat_name')]);

         $product= product::create([
            'Product_name'=>$request->input('Product_name'),
            'Produc_quantity'=>$request->input('Produc_quantity'),
            'Product_Desc' =>$request->input('Product_Desc'), 
            'cat_id'=>$category->cat_id]);


class category extends Model
{
    protected $fillable = array('cat_description','cat_name');


    public function product()
    {
        return $this->hasMany(product::class);


    }
//
}

这些是我的模特

class product extends Model
{
    protected   $fillable = array('Product_name','Product_Desc',
                                  'Produc_quantity','sale_price',
                                  'cost_price');
    public function category()
    {
        return $this->belongsTo(category::class);


    }
        //
}

this is product table

this is category table

我已经从产品模型中的$ fillables中删除了cat_id,这是错误的,我不理解这一点我查了很多论坛和问题,但我没有找到一个答案 这是产品表

 Schema::create('products', function (Blueprint $table) {
        $table->increments('product_id');
        $table->string('Product_name');
        $table->string('Product_Desc');
        $table->integer('sale_price');
        $table->integer('cost_price');
        $table->integer('Produc_quantity');
       $table->integer('cat_id')->unsigned();
        $table->foreign('cat_id')->references('cat_id')->on('categories');
        $table->timestamps();

这是类别表

  Schema::create('categories', function (Blueprint $table) {
        $table->increments('cat_id');
        $table->string('cat_name');
        $table->string('cat_description');


        $table->timestamps();

2 个答案:

答案 0 :(得分:0)

您确定该类别已成功创建吗? 如果是这样,您可能需要在cat_id添加$fillable 此外,在使用cat_id等自定义ID时,您需要添加

public $primaryKey = 'yourkey' 

答案 1 :(得分:0)

我解决了这个问题实际上我的product模型中存在问题$fillables我在我的类别模型cat_id中添加$fillables来解决此问题谢谢你的帮助