我真的希望有人可以帮助我,这让我疯狂!
我有两个表Candidates和Qualifications加入一个名为Results的Pivot表。
所以我的模型都设置如下:
候选人模特:
public function qualification()
{
return $this->belongsToMany('App\Qualification', 'Results', 'candidate_id', 'qualification_id')->withPivot('status','cert_number','credits_required','credits_achieved')->withTimestamps();
}
资格模型:
public function candidate()
{
return $this->belongsToMany('App\Candidate', 'Result', 'qualification_id', 'candidate_id')->withPivot('status','cert_number','credits_required','credits_achieved')->withTimestamps();
}
结果模型:
public function candidate()
{
return $this->belongsTo('App\Candidate')->withTimestamps();
}
public function qualification()
{
return $this->belongsTo('App\Qualification');
}
现在我要做的是在候选控制器中运行一个函数,该函数在运行时将更新数据透视表中的字段(结果)。
所以我试过这个,但没有运气。该函数似乎运行但字段保持不变。
public function claim($id)
{
$candidate_id = Candidate::find($id);
$candidate_id->qualification()->updateExistingPivot($candidate_id, ['status'=> 'COMPLETE']);
}
谁能看到我哪里出错了? 非常感谢。
答案 0 :(得分:0)
我不知道为什么我一开始就不这么做!
public function claim($id)
{
$candidate = Result::find($id);
$candidate->status = 'COMPLETE';
$candidate->save();
return Redirect::back();
}