laravel 模型创建什么时候会无异常失败?

问题描述 投票:0回答:1

我正在向控制器添加一个存储方法,该方法将使用以下代码创建新模型并将其保存到数据库中:

public function store(Request $request)
{
    $validated = $request->validate([
       'name' => 'required|string',
       'description' => 'required|string',
    ]);

    $team = Book::create($validated);

    $request->session()->flash('flash_message', "Book created successfully.");

    return redirect("/site/books");
}

据说,如果 Book 创建由于任何原因失败,将会生成一个异常,这将阻止 flash() 发生,因此该行不需要包含在 if() 语句中来检查 Book 是否实际上已创建(也不是 try/catch 块或数据库事务)。 这准确吗? 是否存在创建失败而没有错误或异常的情况,从而导致不准确的成功消息? 如果是这样,我该如何预防?

php laravel error-handling try-catch laravel-10
1个回答
0
投票

可以使用try catch方法来处理异常

public function store(Request $request) {
$validated = $request -> validate([
    'name' => 'required|string',
    'description' => 'required|string',
]);
try {
    $team = Book:: create($validated);

    $request -> session() -> flash('flash_message', "Book created successfully.");

    return redirect("/site/books");
} catch (\Exception $e) {
    return back()->with('error', 'Failed to create book. Please try again. ' . $e->getMessage());
}
© www.soinside.com 2019 - 2024. All rights reserved.