Size: a a a

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

2021 July 02

J

JUSTasuffer in Laravel для начинающих
posts/{slug} в роутах
Public function controllerMethot ($slug)
источник

J

JUSTasuffer in Laravel для начинающих
А вообще через $request можно
источник

AS

Anton Semenov in Laravel для начинающих
да я про это и говорю что slug одной строкой будет, через request попробую
источник

AS

Anton Semenov in Laravel для начинающих
вот мой {{route('oneProduct',str_replace(':','_',str_replace(' ', '_', mb_strtolower($value['name']))))}}
источник

AR

Alex Ryzhakov in Laravel для начинающих
всем  привет, есть такой вопрос, у меня есть объдинение    
   $users->join('user_restaurant', function($query) use ($ids) {
           $query->on('user_restaurant.user_id','=','users.id');
           $query->whereIn('user_restaurant.restaurant_id', $ids);
       });
я вывожу пользователей у который id ресторана такой же как и в массиве $ids. Вопрос у меня в таблице ресторанов есть поле is_main, как мне сюда внедрить проверку что если он  is_main, то возращать все записи, а если нет , то делать объединение.
источник

🎃

🎃 Даниил ◠‿◠✿... in Laravel для начинающих
храни слаг в бд
источник

🎃

🎃 Даниил ◠‿◠✿... in Laravel для начинающих
иначе что ты будешь делать с двумя одинаковыми названиями постов?
источник

AS

Anton Semenov in Laravel для начинающих
Но вот я тоже так думаю так проще
источник

J

JUSTasuffer in Laravel для начинающих
Вроде еще в ларавеле есть Str::slug ()
источник

SG

Sergey Gerasimov in Laravel для начинающих
Проще мне кажется 1ым запросом достать ресторан, проверить его is_main, и либо один запрос, либо другой
источник

AR

Alex Ryzhakov in Laravel для начинающих
$ids = $currentUser->restaurants()->select('restaurants.id')->get()->pluck('id')->toArray();
       foreach ($ids as $id) {
           // если в какой либо ресторан - центральный оффис, то возращаем все
           if (Restaurant::find($id)->main_office) {
               return \Fractal::collection($users->get(), new StructureUserTransformer(), false);
           }
       }
       // берем только тех пользователей, которые работают в этом ресторане
       $users->join('user_restaurant', function($query) use ($ids) {
           $query->on('user_restaurant.user_id','=','users.id');
           $query->whereIn('user_restaurant.restaurant_id', $ids);
       });
       // возращаем
       return \Fractal::collection($users->get(), new StructureUserTransformer(), false);
источник

AR

Alex Ryzhakov in Laravel для начинающих
тип того?
источник

SG

Sergey Gerasimov in Laravel для начинающих
А зачем? Просто сразу получи запись с is_main
источник

SG

Sergey Gerasimov in Laravel для начинающих
У тебя тут проблема N+1
источник

AR

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

AR

Alex Ryzhakov in Laravel для начинающих
а тут не понял?
источник

SG

Sergey Gerasimov in Laravel для начинающих
foreach ($ids as $id)  ... Restaurant::find($id)

На каждую итерацию идет запрос к БД
источник

AR

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

AR

Alex Ryzhakov in Laravel для начинающих
а если там было бы милион айдищников
источник

AR

Alex Ryzhakov in Laravel для начинающих
почему то я сейчас только об этом подумал)
источник