Laravel表之间雄辩的关系

时间:2019-06-25 06:26:51

标签: laravel laravel-5 orm eloquent

陷入了Laravel雄辩的关系。我有两个桌子。

燃料包含

  • id,燃料名称,燃料费率

计算机包含

  • 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; 中选择*,其中fuelfuel = 1和{{1} }。machine_id不为空)

1 个答案:

答案 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类自动检测外键。