Laravel красноречивые отношения между таблицами - PullRequest
0 голосов
/ 25 июня 2019

Застрял в Ларавеле красноречивых отношениях. У меня есть две таблицы.

топливо содержит

  • id, fuel_name, fuel_rate

машина содержит

  • id, имя машины, идентификатор машины

    поля.

fuel_id - это внешний ключ.

Я попробовал несколько примеров с laravel.com

in 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: выберите * из fuel, где fuel. machine_id = 1 и fuel. machine_id не равно нулю. )

1 Ответ

0 голосов
/ 25 июня 2019

Пожалуйста, проверьте конец раздела 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 класса.

...