Laravel 9 参数 2 必须是 ?callable 类型,字符串给定

Laravel 9 with argument 2 must be of type ?callable, string given

我正在学习教程。在我使用 with 发送成功消息的控制器中。

    public function store(Request $request)
{
    $request->validate([
       'recipe' => 'required',
        'rating' => 'required',
    ]);

    Recipe::create($request->all());

    return redirect()->route('recipes.index')
        -with('success', 'Recipe created successfully');
}

提交表单后我收到一条错误消息,我被重定向到索引页面,那里的代码如下所示。

@if ($message = Illuminate\Support\Facades\Session::get('success'))
    <div class="alert alert-success">
        <p>{{ $message }}</p>
    </div>
@endif

这是错误消息:with(): Argument #2 ($callback) must be of type ?callable, string given, called in C:\laragon\www\recipe_project\app\Http\Controllers\RecipeController.php on line 49

你错过了箭头:

return redirect()->route('recipes.index')
        -with('success', 'Recipe created successfully');

应该是:

return redirect()->route('recipes.index')
        ->with('success', 'Recipe created successfully');