Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Приветствую всех. С ларавелем недавно, потому особо не пинайте.
Версия лары 8я.
Обьясните пожалуйста выборку из нескольких таблиц с использование моделей eloquent
Пусть первая таблица
id
otdel_id
inventory_num
и тут еще много полей
Вторая таблица представляет собой справочник отделений то есть
id
name
естественно id = otdel_id
Теперь задача - мне надо найти запись по инвентарному номеру inventory_num и вывести все поля таблицы 1 в табличку. Но вместо otdel_id должен стоять его нейм. Метод Find мне не подходит, так как ищет по ид. Что я должен сделать в данном случае? А в общем, если куча справочников, а итоговая таблица представляет собой просто набор ИДшников?
На данный момент получается только так
public function findTech(Request $req){
$inv = $req->inv;
$ip = $req->ip;
$listOrg = ListTech::where('inv_num', $inv)->get();
return view('findtable',['tab'=>$listOrg]);
}
Как написано в справочнике, сделал такое
public function otdName(){
return $this->hasOne(Otdel::class,'id','otdel_id');
}
Но при попытке написать
$listOrg = ListTech::where('inv_num', $inv)->get()->otdName;
оно ругается всякими словами. Как правильно?
Изменено reiss (25.02.2022 07:41:34)
Не в сети
Надо еще прочитать как делаются связи — eloquent-relationships.
Надо при выборке указать, что нужно достать модель со связью otdName
$listOrg = ListTech::with('otdName')->where('inv_num', $inv)->get();
$listOrg->otdName->name; // Тут будет имя
Не в сети
Страницы 1