Ini*_*igo 16 php http-status-code-404 laravel laravel-5
在Laravel 4我曾经能够简单地打电话
App::abort(404)
Run Code Online (Sandbox Code Playgroud)
有没有等价的Laravel 5?
在撰写本文时,似乎有令人惊讶的有限信息.我已经找到了关于如何捕获NotFoundHttpExceptions的讨论,但这不是我想要的,因为我的routes.php文件已经处理了url结构.为了给出更多背景知识,这里是我想要做的简化版本:
routes.php文件:
Route::get('/info/{page}', array('as' => 'info', 'uses' => 'Primary@infoPage'));
Run Code Online (Sandbox Code Playgroud)
Primary.php(控制器)
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?
}
}
Run Code Online (Sandbox Code Playgroud)
IlG*_*ala 31
您只需查看官方文档即可.
一些例外描述了来自服务器的HTTP错误代码.例如,这可能是"未找到页面"错误(404),"未授权错误"(401)或甚至是开发者生成500错误.要返回此类响应,请使用以下命令:
abort(404);
Run Code Online (Sandbox Code Playgroud)
您可以选择提供回复:
abort(403, 'Unauthorized action.');
Run Code Online (Sandbox Code Playgroud)
可以在请求的生命周期中的任何时间使用此方法.
要返回所有404错误的自定义视图,请创建一个resources/views/errors/404.blade.php文件.此视图将在您的应用程序生成的所有404错误中提供.
似乎此功能已被删除,很快将被替换为此处所写的."解决方法"可以创建404响应.
对于大多数路由和控制器操作,您将返回完整Illuminate\Http\Response实例或视图.返回完整Response实例允许您自定义响应的HTTP状态代码和标头.一个Response实例从继承Symfony\Component\HttpFoundation\Response类,用于构建HTTP响应提供了多种方法:
use Illuminate\Http\Response;
return (new Response($content, $status))
->header('Content-Type', $value);
Run Code Online (Sandbox Code Playgroud)
为方便起见,您还可以使用响应帮助程序:
return response($content, $status)
->header('Content-Type', $value);
Run Code Online (Sandbox Code Playgroud)
注意:有关可用响应方法的完整列表,请查看其API文档和Symfony API文档.
| 归档时间: |
|
| 查看次数: |
35454 次 |
| 最近记录: |