Size: a a a

Laravel для начинающих

2021 October 05

SS

Serg Serdyuk in Laravel для начинающих
ой не все можно елкой построить...🌚
источник

SS

Serg Serdyuk in Laravel для начинающих
да и иногда оверхед по памяти значительный
источник

SG

Sergey Gerasimov in Laravel для начинающих
Например?
источник

SS

Serg Serdyuk in Laravel для начинающих
ну например подзапросы, это уже не чисто елка
источник

SG

Sergey Gerasimov in Laravel для начинающих
Елка - это обертка над квери билдером
источник

SS

Serg Serdyuk in Laravel для начинающих
да понятно что можно смешать, я скорее о том, что не все можно сделать чисто релейшенами
источник

?

? in Laravel для начинающих
Как ито
whereExists -> whereHas()
источник

SS

Serg Serdyuk in Laravel для начинающих
ну и + скл забывать не стоит, практика не помешает🌚
источник

SS

Serg Serdyuk in Laravel для начинающих
addSelect/selectSub
источник

SG

Sergey Gerasimov in Laravel для начинающих
Ну блин, его задача решается так:

Task::query()
   ->leftJoin('users', 'tasks.created_by_id', '=', 'users.id')
   ->get();
источник

SS

Serg Serdyuk in Laravel для начинающих
и в get() перечислить поля с алиасами, то понятно🌚
источник

?

? in Laravel для начинающих
Я думаю что там и релейшеном можно обойтись, если захотеть
источник

A

Alx in Laravel для начинающих
ну вот хз, в модели я прописал метод

public function getAuthor() {
   return $this->hasOne(User::class, 'foreign_key');
}


Это если через “елку” делать

в таблице tasks есть после created_by_id, ключ которого ссылается на айди юзера из таблицы users, собственно нужно вернуть имя автора таска, в обоих таблицах есть поле name которое при джойне путается, то есть да, надо использовать алиасы походу, но как именно через eloquent че то не понятно
источник

A

Alx in Laravel для начинающих
Это в определении один к одному, у одного таска может быть только один создатель
источник

SG

Sergey Gerasimov in Laravel для начинающих
Так тут связь корректную пропиши, не foreign_key, а created_by_id
источник

SG

Sergey Gerasimov in Laravel для начинающих
Естественно релейшеном возможно даже дешевле выйдет, 2 простых запроса вместо 1ого левостороннего жойна
источник

SG

Sergey Gerasimov in Laravel для начинающих
И связь не hasOne же, а belongsTo
источник

A

Alx in Laravel для начинающих
Так, кажется понял6 спасибо, сейчас попробую
источник

SG

Sergey Gerasimov in Laravel для начинающих
Про hasOne можешь забыть вообще, есть hasMany и обратная belongsTo, вот их и юзай пока
источник

A

Alx in Laravel для начинающих
Понял, сейчас проштудирую их, спасибо еще раз
источник