Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Доброго времени суток!
Вывожу инфу по табличке "Часы". и на месте этого же вывода, по кнопке, хочу отображать только те часы, что были отмечены "В избрандное".
Проблема в следующем:
Если использую просто выборку часов
$clocks_list = clock::select(DB::raw('id, brand, name, type, price'));
то все ок. можно получить коллекцию моделей и юзать методы из модели..
а если вот так:
$likes = DB::table('clocks')->Join('likes', 'clocks.id', '=', 'likes.clock_id')->where('user_id', '=', Auth::user()->id);
то полуачю уже Builder и цикл с использованием методов из модели уже не работает. т.к. вместо модели там массив
{#1290 ▼
+"id": 62
+"brand": "NoName"
+"name": "234"
+"price": 234
+"text": "234"
+"comment": "234"
+"type": "Мужские"
+"status": 0
+"created_at": "2018-06-27 10:41:31"
+"updated_at": "2018-06-27 10:41:31"
+"user_id": 1
+"clock_id": 91
}
и весь код перелопачивать и все равно возникают с этим связанные проблемы.. Можно ли както получить сразу нормальную коллекцию только избранного товара текущего пользователя ?
Не в сети
Привет.
Если ты хочешь пойти по правильному и хорошему пути: тебе нужно использовать модели. И тогда нужно будет прописать связи между ними.
А в данном случае - попробуй get()
Но в принципе, использовать вместо модели с Laravel фасад DB - плохая практика
Не в сети
Решение)
в юзере отношение
public function likedClocks(){
return $this->belongsToMany(Clock::class, 'likes', 'user_id', 'clock_id');
}
и далее уже юзаем
$tt = User::all()->where('id','=', Auth::user()->id);
foreach ($tt as $clo) {
dd($clo->likedClocks);
}
Не в сети
Пагинация отношений, если кому надо:
public function getOptionsPaginatedAttribute()
{
return $this->likedClocks()->paginate(10);
}
а вызов вот такой!!
->options_paginated;
источник: https://stackoverrun.com/ru/q/6993429/l … 1%8F%D1%85
Не в сети
мож кто знает, можно ли в отношения подключить реквест? а именно, хотел бы сделать механизм поиска по результату отношений..
public function likedClocks(){
return $this->belongsToMany(Clock::class, 'likes', 'user_id', 'clock_id');
}
Не в сети
Страницы 1