In Laravel 4
i used to be able to simply call
App::abort(404)
Is there an equivalent in Laravel 5
?
There seems to be surprisingly limited information out there about this at the time of writing. I've found discussions on how to catch NotFoundHttpExceptions but that isn't what I want, as the url structure is already processed by my routes.php file. To give some more background, here's a simplified version of what I am trying to do:
Routes.php:
Route::get('/info/{page}', array('as' => 'info', 'uses' => 'Primary@infoPage'));
Primary.php (controller)
public function infoPage($page){
$pageData = DB::table('pages')->where('url_title', $page)->first();
if(!empty($pageData)){
// great, there's a corresponding row in the database for this page, go ahead and do stuff...
}else {
// This page doesn't exist, please abort with a 404 error... but how?
}
}
The abort function throws an HTTP exception which will be rendered by the exception handler: abort(403) .
How do I fix 404 Not Found in laravel 9? It should be enough to just run php artisan vendor:publish –tag=laravel-errors and then edit the newly created resources/views/errors/404. blade.
echo Route::getActionName();
You just have to look at the Official documentation.
Some exceptions describe HTTP error codes from the server. For example, this may be a "page not found" error (404), an "unauthorized error" (401) or even a developer generated 500 error. In order to return such a response, use the following:
abort(404);
Optionally, you may provide a response:
abort(403, 'Unauthorized action.');
This method may be used at any time during the request's lifecycle.
To return a custom view for all 404 errors, create a resources/views/errors/404.blade.php
file. This view will be served on all 404 errors generated by your application.
Seems that this function has been removed and will soon be replaced as written here. A "workaround" can be creating a 404 response.
For most routes and controller actions, you will be returning a full Illuminate\Http\Response
instance or a view. Returning a full Response
instance allows you to customize the response's HTTP status code and headers. A Response
instance inherits from the Symfony\Component\HttpFoundation\Response
class, providing a variety of methods for building HTTP responses:
use Illuminate\Http\Response;
return (new Response($content, $status))
->header('Content-Type', $value);
For convenience, you may also use the response helper:
return response($content, $status)
->header('Content-Type', $value);
Note: For a full list of available Response methods, check out its API documentation and the Symfony API documentation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With