我在数据透视表中有一个额外的列,我需要访问它。
架构:
Schema::create('alert_criteria', function(Blueprint $table)
{
$table->increments('id');
$table->integer('alert_id')->unsigned()->index();
$table->foreign('alert_id')->references('id')->on('alerts')->onDelete('cascade');
$table->integer('criteria_id')->unsigned()->index();
$table->foreign('criteria_id')->references('id')->on('criterias')->onDelete('cascade');
$table->integer('viewed');
$table->timestamps();
});
标准模式
public function alerts()
{
return $this->belongsToMany('Alert')->withPivot('viewed')->withTimestamps();
}
控制器
public function getMatches()
{
$matches = Criteria::find(Auth::user()->id)
->alerts()
->get();
}
查看:
@foreach($matches as $match)
<td>{{$match->viewed}}</td>
@endforeach
视图不会返回错误,但它不会显示任何内容。 &#39;观看&#39;列只是1或0。
非常感谢提前。
答案 0 :(得分:2)
要访问其他数据透视表列,请将此添加到您的关系声明中:
public function alerts(){
return $this->belongsToMany('Alert')->withPivot('viewed');
}
要访问它,您必须使用pivot
属性
@foreach($matches as $match)
<td>{{$match->pivot->viewed}}</td>
@endforeach