陷入了Laravel雄辩的关系。我有两个桌子。
燃料包含
计算机包含
id,machine_name,machine_rate fuel_id
字段。
fuel_id是一个外键。
我已经尝试过laravel.com的一些示例
在 Machine.php
中ENTER
并在控制器中
class Machine extends Model
{
protected $table = 'machine';
public function machineinfo()
{
return $this->hasMany('App\Fuel','id');
}
}
我想看看 机器名称,机器代码,燃油名称和输出中的燃油率。
但是输出是
找不到列:1054“ where子句”中的未知列“ fuel.machine_id”(SQL:从$items = Machine::find(1)->machineinfo;
中选择*,其中fuel
。fuel
= 1和{{1} }。machine_id
不为空)
答案 0 :(得分:0)
请在此处查看 laravel hasMany 部分的结尾: https://laravel.com/docs/5.8/eloquent-relationships#one-to-many
hasMany的第二个参数是外键,在这种情况下,这意味着 machine 表中的 fuel_id 。因此,您应该在
中发送'fuel_id'而不是传递'id'作为第二个参数 $this->hasMany('App\Fuel','fuel_id')
。
此外,您可能不需要使用第二个参数。请参阅上面同一链接中的命名约定。根据提供的App\Fuel
类自动检测外键。