Laravel BelongsToMany attach()无法正常工作

时间:2018-07-18 09:48:02

标签: php database laravel eloquent

我想存储每个会员注册时的会员购物日。但是这里的attach()方法不起作用。它说Integrity constraint violation: 1452。我定义了BelongToMany关系。 这是我的Member模型:

public function dayShop(){
        return $this->belongsToMany(Days::class, 'member_shops','member_id','day_name');
 }

这是我的控制器:

public function store(Request $request)
    {
        $member = new Member();
        $member->name=$request->name;
        $member->balance=$request->balance;
        $member->email=$request->email;
        $member->password=Hash::make($request->password);
        $member->role=$request->role;
        $member->save();
        $member->dayShop()->attach('1', ['day_name' => 'Something']);
        return back();
    }

member_shops表:

 Schema::create('member_shops', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('member_id')->unsigned()->nullable();
        $table->foreign('member_id')->references('id')
            ->on('members')->onUpdate('cascade')->onDelete('cascade');
        $table->string('day_name')->nullable();
        $table->foreign('day_name')->references('name')
            ->on('days')->onUpdate('cascade')->onDelete('cascade');
        $table->timestamps();
    });

错误是:

  

SQLSTATE [23000]:违反完整性约束:1452无法添加或   更新子行:外键约束失败   ({mealmember_shops,约束member_shops_day_name_foreign   删除级联上的外键(day_name)参考daysname)   在更新级联(SQL:插入member_shopsday_name中,   member_id)值(某事,18))

0 个答案:

没有答案