Laravel & ldquo; root & rdquo; переменная маршрута

Ответ гораздо лучше, чем использование spliteratorUnknownSize напрямую, что также легче и дает лучший результат. Iterable имеет метод spliterator(), поэтому вы должны просто использовать его для получения вашего разделителя. В худшем случае тот же код (реализация по умолчанию использует spliteratorUnknownSize), но в более общем случае, когда ваш Iterable уже является коллекцией, вы получите лучший разделитель и, следовательно, лучшую производительность потока ( возможно, даже хороший параллелизм.) Его также меньше кода:

StreamSupport.stream(iterable.spliterator(), false)
             .filter(...)
             .moreStreamOps(...);

Как вы можете видеть, получение потока из Iterable (см. Почему Iterable & lt; T & gt; не предоставляет поток () и parallelStream ()? ) не очень болезненна.

2
задан Max Tommy Mitschke 3 March 2019 в 13:33
поделиться

3 ответа

Как насчет того, чтобы быть агностиком? Один маршрут, вы тестируете параметр, затем возвращаете правильный результат.

Route::get('/{pageOrCountry}',function($pageOrCountry){
$page = App\Page::find($pageOrCountry);
if($page) return $page;
else $country = App\Country::find($pageOrCountry);
if($country) return $country;
else return redirect('404');
});
0
ответ дан Ahmed Nasr 3 March 2019 в 13:33
поделиться

Есть несколько способов, которые я упомяну двумя способами:

1- Привязка модели маршрута: функция создания внутри контроллера страницы

  public function view(Page $page){
   }

эта функция вернет не найденный, если страница не существует

2- Нормальная проверка:

   public function view($page){
    $check= Page::find($page);
     if(!$check) abort(404);
   }
0
ответ дан ali 3 March 2019 в 13:33
поделиться

создать папку resources / views / errors / 404.blade.php и определить сообщение об ошибке 404

0
ответ дан Yusuf Onur Sari 3 March 2019 в 13:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: