Size: a a a

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

2020 March 24

SG

Sergey Gerasimov in Laravel для начинающих
Vladimir Yefremov
Спасибо!

пробую использовать релейшен

        $queryBuilder = Payout::select('payout.*');

       if ($request->input('username')) {
           $queryBuilder->where('users->username', 'like', '%' . $request->input('username') . '%');
       }

       $payouts = $queryBuilder->paginate(50);

модель Payout имеет метод для связи с User, подчинена по belongsTo

как это притулить в мой запрос? 😊
чтобы получить юзера

как сейчас написано - выдает ошибку

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '>'$."username"' like ?' at line 1 (SQL: select count(*) as aggregate from payout where users->'$."username"' like %re%)
Через whereHas
источник

VY

Vladimir Yefremov in Laravel для начинающих
Sergey Gerasimov
Через whereHas
почитал про whereHas - по доке это вроде работает от родителя к ребенку.
у меня родитель User , а ребенок Payout,
запрос я строю от ребенка....
как прицепить(найти) к нему родителя?
источник

S

Sonic [Скупаю | Акту... in Laravel для начинающих
Вопрос к тем, кто работает с Vue.
Я передаю из blade в vue модель, но связь (relationship) в ней не сохраняется. Если передам через axios, то всё нормально.
Код для axios и прямой передачи идентичен
Ticket::where(['id' => $id, 'user_id' => $user->id])->with('messages')->get()->toJson();

Передавал как
:ticket="{{ $ticket }}" и :ticket="{{ json_encode($ticket) }}"
все равно связь теряется
источник

E

Evgenii in Laravel для начинающих
Ticket::where(['id' => $id, 'user_id' => $user->id])->with('messages')->get()->toJson();
источник

E

Evgenii in Laravel для начинающих
не правильно
источник

E

Evgenii in Laravel для начинающих
ты уже айди передаешь нафига пользователя?
источник

E

Evgenii in Laravel для начинающих
айди уникелен
источник

S

Sonic [Скупаю | Акту... in Laravel для начинающих
Суть не в правильности запроса. Его результат абсолютно верен. Суть в том, что теряется связь с messages
источник

E

Evgenii in Laravel для начинающих
у тебя запрос не правилен
источник

E

Evgenii in Laravel для начинающих
это раз
источник

E

Evgenii in Laravel для начинающих
связь не теряется
источник

E

Evgenii in Laravel для начинающих
ты просто сериализушь не то
источник

E

Evgenii in Laravel для начинающих
и не так
источник

E

Evgenii in Laravel для начинающих
вообще все не так тут
источник

S

Sonic [Скупаю | Акту... in Laravel для начинающих
Evgenii
ты просто сериализушь не то
Вероятно, но как тогда? Могу дать сравнение aixos и обычного - данные разные, запрос 1
источник

E

Evgenii in Laravel для начинающих
вот у тебя есть контроллер

class MessageController
 public function index(Ticket $ticket)
   $messages = $ticket->messages;
   return view('view')->with(compact('ticket', 'messages')
источник

E

Evgenii in Laravel для начинающих
вот как должно быть
источник

E

Evgenii in Laravel для начинающих
/ticket/1/messages
источник

E

Evgenii in Laravel для начинающих
ticket/{ticket}/messages - ticket по айди резолвится и мессаги подгружаются через relation
источник

E

Evgenii in Laravel для начинающих
:ticket="{{ $ticket->toJson() }}" :messages="{{ $message->toJson() }}
источник