gpt4 book ai didi

laravel - 使用 ModelNotFoundException

转载 作者:行者123 更新时间:2023-12-03 21:23:56 24 4
gpt4 key购买 nike

我从 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;
}
}
?>

在我的模型中:
<?php
use Illuminate\Database\Eloquent\ModelNotFoundException;

class Menu extends Eloquent {
protected $table = 'categories';
}

?>

当然,对于我的示例,“类别”中没有具有 parent_id > 100 的记录。这是我的单元测试。所以我期待对 ModelNotFoundException 做点什么.

如果我运行 http://example.co.uk/f在我的浏览器中,我收到:
Illuminate \ Database \ Eloquent \ ModelNotFoundException
No query results for model [Menu].

laravel 错误页面 - 这是预期的,但是如何使用预定义的消息重定向到我的路由“错误”? IE。
<?php
// error.blade.php

{{ $message }}
?>

如果你能给我一个例子。

最佳答案

试试这个

  try {

$user = User::findOrFail($request->input('user_id'));

} catch (ModelNotFoundException $exception) {

return back()->withError($exception->getMessage())->withInput();
}
要显示错误,请在 Blade 文件中使用此代码。
 @if (session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
当然也可以使用你的 Controller 的这个顶部
use Illuminate\Database\Eloquent\ModelNotFoundException;  

关于laravel - 使用 ModelNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23938061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com