[英]Laravel eloquent relationship between tables
陷入了Laravel雄辯的關系中。 我有兩張桌子。
燃料含有
機器包含
id,machine_name,machine_rate fuel_id
領域。
fuel_id是外鍵。
我從laravel.com嘗試過一些例子
在Machine.php中
class Machine extends Model
{
protected $table = 'machine';
public function machineinfo()
{
return $this->hasMany('App\Fuel','id');
}
}
並在控制器中
$items = Machine::find(1)->machineinfo;
我想在輸出中看到機器名稱,機器代碼,燃料名稱和燃料率。
但輸出是
列未找到:1054未知列在'fuel.machine_id' 'where子句'(SQL:SELECT * FROM fuel
,其中fuel
。 machine_id
= 1和fuel
。 machine_id
不為空)
請檢查laravel hasMany部分的結尾: https : //laravel.com/docs/5.8/eloquent-relationships#one-to-many
hasMany的第二個參數是外鍵,在本例中表示機器表中的fuel_id 。 因此,不要將'id'作為第二個參數傳遞,而應該發送'fuel_id'
$this->hasMany('App\\Fuel','fuel_id')
。
此外,您可能不需要使用第二個參數。 請參閱上面相同鏈接中的命名約定。 根據提供的App\\Fuel
類自動檢測外鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.