У меня есть следующие модели: Пользователь, Устройство, Продукт.Как получить третье отношение в laravel
Пользователь
public function devices()
{
return $this->hasMany('App\Device');
}
Устройство
public function user()
{
return $this->BelongsTo('App\User');
}
public function reading()
{
return $this->hasMany('App\Reading', 'device_id', 'part_id');
}
public function product()
{
return $this->hasOne('App\Product');
}
Продукт
public function device()
{
return $this->belongsTo('App\Device');
}
Следующий запрос тянет мои пользователи и все их устройства, но внутри этой коллекции не является отношением от устройства к продукт.
$deviceSingles = User::with('devices')->get();
Этот запрос получает мне все продукты со всеми устройствами, возложенных на него
$deviceSinglesTwo = Product::with('device')->get();
Как я могу получить, что третье отношение, приложенный к моему первоначальному запросу, так что я могу сделать это
$deviceSingles->device->product->title
я попытался это, но я получаю и ошибка MySQL SQLSTATE [42S22]: Column не найдено: 1054 Неизвестный столбец 'products.device_id' в 'где предложение' (SQL: SELECT * FROM 'продуктов 'где' products'.'device_id' в (1, 2)). Я должен смешивать свои столбцы. в таблице устройств есть product_id. другой tbale, имеет id, title, product – ATechGuy
@keaner, вы должны проверить документы. Существует очень строгое соглашение об именах для столбцов db, которым нужно подчиняться, если вы явно не укажете имена внешних ключей. – apokryfos
@keaner, потому что вы используете 'hasOne()' отношение, Laravel ищет столбец 'device_id' в таблице' products'. –