我在Laravel 5.5中有一个Pivot表M:N关系。
基本上我的数据结构是;
Table_A
---------
id
name
Table_A_has_table_B <pivot>
---------
table_a_id
table_b_id
other_field
Table_B
---------
id
name
在我的Table_A
模型中
public function tableb()
{
return $this->belongsToMany('App\Table_B', 'Table_A_has_table_B', 'table_a_id', 'table_b_id');
}
最后在我的刀片视图中我有这个
@foreach ($tablea->tableb as $tbl)
<p><a href="#">{{ $tbl->name }}</a></p>
<p>{{ $tbl->other_field}}</p>
@endforeach
除最后一行外似乎有效的所有
{{ $tbl->other_field}}
如何访问数据透视表上的字段和tableb
上的数据。
数据透视表包含与tableb
相关的当前视图相关的信息。
模式
Schema::create('Table_A_has_table_B', function (Blueprint $table) {
$table->integer('table_a_id')->unsigned()->index();
$table->integer('table_b_id')->unsigned()->index();
$table->integer('other_field')->unsigned();
$table->primary(['table_a_id', 'competitor_id']);
$table->foreign('table_a_id')->references('id')->on('table_a')->onDelete('cascade');
$table->foreign('table_b_id')->references('id')->on('table_b')->onDelete('cascade');
});
答案 0 :(得分:2)
您必须在此关系中添加->withPivot('column1', 'column2');
(Reflections):
public function tableb()
{
return $this->belongsToMany('App\Table_B', 'Table_A_has_table_B', 'table_a_id', 'table_b_id')->withPivot('other_field');
}
然后使用pivot
这样的关键字:
{{ $tbl->pivot->other_field}}