Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 25.02.2022 07:04:42

Выборка из нескольких таблиц

Приветствую всех. С ларавелем недавно, потому особо не пинайте.
Версия лары 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)

Не в сети

#2 17.04.2022 15:04:53

i3bepb
Откуда: Екатеринбург
Сообщений: 20

Re: Выборка из нескольких таблиц

Надо еще прочитать как делаются связи — eloquent-relationships.
Надо при выборке указать, что нужно достать модель со связью otdName

PHP
$listOrg ListTech::with('otdName')->where('inv_num'$inv)->get();
$listOrg->otdName->name// Тут будет имя

Не в сети

Подвал раздела