我开始在Laravel,并希望发现更多关于使用错误处理,特别是ModelNotFoundException对象.
<?php
class MenuController extends BaseController {
function f() {
try {
$menus = Menu::where('parent_id', '>', 100)->firstOrFail();
} catch (ModelNotFoundException $e) {
$message = 'Invalid parent_id.';
return Redirect::to('error')->with('message', $message);
}
return $menus;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
在我的模型中:
<?php
use Illuminate\Database\Eloquent\ModelNotFoundException;
class Menu extends Eloquent {
protected $table = 'categories';
}
?>
Run Code Online (Sandbox Code Playgroud)
当然,对于我的例子,"类别"中没有记录,parent_id > 100这是我的单元测试.所以我期待着做点什么ModelNotFoundException.
如果我在浏览器中运行http://example.co.uk/f,我会收到:
Illuminate \ Database \ Eloquent \ ModelNotFoundException
No query results for model [Menu].
Run Code Online (Sandbox Code Playgroud)
laravel错误页面 - 这是预期的,但如何使用预定义的消息重定向到我的路由'错误'?即
<?php
// error.blade.php
{{ $message }}
?>
Run Code Online (Sandbox Code Playgroud)
如果你能给我一个例子.
The*_*pha 14
在Laravel默认情况下,声明了一个错误处理程序,app/start/global.php其中看起来像这样:
App::error(function(Exception $exception, $code) {
Log::error($exception);
});
Run Code Online (Sandbox Code Playgroud)
如果没有声明其他特定处理程序,此处理程序基本上捕获每个错误.要声明特定的(仅针对一种类型的错误),您可以在global.php文件中使用以下内容:
App::error(function(Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
// Log the error
Log::error($exception);
// Redirect to error route with any message
return Redirect::to('error')->with('message', $exception->getMessage());
});
Run Code Online (Sandbox Code Playgroud)
最好全局声明一个错误处理程序,这样你就不必在每个模型/控制器中处理它.要声明任何特定的错误处理程序,请记住在它之后(默认错误处理程序)声明它,因为错误处理程序从大多数传播到特定错误处理程序.
阅读有关错误和记录的更多信息.
Raz*_*zor 10
只需使用命名空间
try {
$menus = Menu::where('parent_id', '>', 100)->firstOrFail();
}catch (\Illuminate\Database\Eloquent\ModelNotFoundException $e) {
$message = 'Invalid parent_id.';
return Redirect::to('error')->with('message', $message);
}
Run Code Online (Sandbox Code Playgroud)
或者使用别名将其引用到外部名称
use Illuminate\Database\Eloquent\ModelNotFoundException as ModelNotFoundException;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16625 次 |
| 最近记录: |