【问题标题】:Laravel get data based on foreign keyLaravel 根据外键获取数据
【发布时间】:2015-11-09 22:19:31
【问题描述】:
所以我有 2 个表,TABLE1 和 TABLE2。
它们通过 Eloquent 链接:
TABLE1 有很多 TABLE2,而TABLE2 有一个 TABLE 1。
它们与外键链接如下:
在 TABLE2 table1_id -> 链接到 -> TABLE1 id。
如何检索整个表数据或表 2, + 将 table1_id 替换为 table1 的列(例如,按书名)?
对抽象感到抱歉,但这是我能解释它的最佳方式吗? :D
【问题讨论】:
标签:
php
laravel
foreign-keys
laravel-5
eloquent
【解决方案1】:
您需要在模型中建立关系,例如,如果您有一个“类别”并且它有很多“产品”,您需要将此代码放入您的模型中
public function products()
{
return $this->hasMany('App\Product', 'foreign_key_you_have');
}
当您需要在视图中检索与该类别关联的所有产品时,您需要调用模型的函数,例如
@foreach($category->products as $cp) // with $category->products you call all products associated to your foreign_key
<h1>{{$cp->price}}</h1>
@endforeach
【解决方案2】:
最简单的方法是利用 Eloquent 的预加载,从 table2 中获取所有记录,并在 table1 中获取它们对应的记录。
这样就可以了:
$results = Table2::with('table1')->get();
foreach ($results as $table2record) {
echo $table2record->id; //access table2 data
echo $table2record->table1->booktitle; //access table1 data
}