Intereting Posts
Объединение двух многомерных массивов с использованием ключа и добавление значений Дата PHP с отметкой 0 Как отправить форму с помощью php / ajax без открытия новой страницы при отправке Получить элементы заказа и WC_Order_Item_Product в Woocommerce 3 Отправка пользовательского HTTP-запроса с помощью PHP Несколько сеансов в одном экземпляре с использованием PHP? PHP Reflection – Получить метод Тип параметра As String Запрос GET с PHP с помощью file_get_contents с параметрами Символы на строку и строки в текстовом поле Запуск Codeigniter через CLI выводит корневой сайт веб-сайта вместо ожидаемого результата Используйте DomDocument для замены всех тегов заголовков тегами h4 передавать переменные php с одного сервера на другой Уменьшить макет групп форм в Twig с помощью Symfony2 (.7) Как заставить работать ссылки, независимо от местоположения в структуре каталогов? Как изменить WooCommerce Добавить в корзину Кнопка на основе доступности

Laravel 4: использование контроллера для переадресации страницы, если сообщение не существует.

Я работаю с Laravel 4, у меня есть страница с сообщениями, например example.com/posts/1 показывает первое сообщение из db.

То, что я хочу сделать, это перенаправить страницу на индекс, если кто-то пытается перейти к URL-адресу, который не существует.

например, если не было почтового номера 6, то example.com/posts/6 следует перенаправить на example.com/posts

Вот что я имею, это вообще на пути?

public function show($id) { $post = $this->post->findOrFail($id); if($post != NULL) { return View::make('posts.show', compact('post')); } else { return Redirect::route('posts.index'); } } 

Есть идеи? Благодаря 🙂

Related of "Laravel 4: использование контроллера для переадресации страницы, если сообщение не существует."

Именно так, как объяснил Робер, вам нужно будет сделать следующее:

В верхней части файла:

 use Illuminate\Database\Eloquent\ModelNotFoundException; 

Затем в вашем методе show ($ id):

 try { $post = $this->post->findOrFail($id); return View::make('posts.show', compact('post')); } catch(ModelNotFoundException $e) { return Redirect::route('posts.index'); } 

Метод findOrFail() будет генерировать исключение, если страница не найдена. Поэтому, если вы завершите try { ... } catch() { ... } вокруг него, вы можете вернуть представление о перенаправлении.