Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to show 404 page if route not found in laravel

i have created route group using middleware.It works perfectly.

But i have one issue where if i navigate url to

http://localhost/laravel-news/public/admin/add-post-new

this without login then it redirect to guest home page

but if i navigate url to

http://localhost/laravel-news/public/add-post-new

without admin in url then it return blank page.now my question is how to show page not found 404 page for that.i am using laravel 5.1

thank you

update

Route::group(['middleware' => 'admin'], function () {


            Route::get('add-post-new', function () {

        //  dd('something');
            return view('a.addPost');

            });

            Route::post('/add-post-new','PostsController@addPost');

            Route::get('/all-post', function () {return view('a.all_post'); });



});
like image 752
scott Avatar asked Aug 24 '15 08:08

scott


People also ask

How can I solve this 404 Not Found error even when route exist?

By adding the . htaccess file at the same folder location of the index. php it solves the 404 page not found error in my laravel Project.

How do I create a 404 page in Laravel?

You need to create blade views for error pages, move to this path resources/views/ inside here create errors folder and within the directory create 404. blade. php file. It will redirect you to the 404 page if you don't find the associated URL.

Why am I receiving a 404 not found when I try to access a route other than?

A 404 Not Found error occurs when a user is trying to access an asset that either does not exist or has been moved. This commonly occurs when a permalink has been modified and no 301 redirect was put in place to redirect the user to the correct URL.

Where is the 404 page in Laravel?

In your Laravel project folder, create a folder called “errors” in your /resources/views/ folder. Create a file called 404. blade. php in this /resources/views/errors/ folder.


2 Answers

update 06.08.2020

Make a 404.blade.php page in /resources/views/errors/ folder and that page will be shown if:

  • a route does not exist
  • when you use ->findOrFail($modelId);
  • when you use abort(404);

instead of laravel error for non existing route:

Sorry, the page you are looking for could not be found.
1/1 NotFoundHttpException in RouteCollection.php line 161:
  1. make 404.blade.php page in /resources/views/errors/ folder

and then just call it with

abort(404);

For example make a route like this:

Route::get('/404', function () {
    return abort(404);
});
like image 164
lewis4u Avatar answered Sep 19 '22 20:09

lewis4u


Try this:

abort(404);

more info http://laravel.com/docs/5.1/routing#throwing-404-errors

like image 39
Grald Avatar answered Sep 20 '22 20:09

Grald