Laravel不想重定向到正确的页面

mcdcgff0  于 2023-10-22  发布在  其他
关注(0)|答案(2)|浏览(109)

目前,我正试图从我的数据库中获取所有信息,并将函数重定向到显示所有数据的列表页面。重定向目前不工作,我得到以下错误:
Symfony\Component\HttpFoundation\RedirectResponse::__construct():参数#2($status)必须是int类型,给定数组。
这个错误特别来自我代码的返回重定向部分。这对我的同学来说工作得很好,他们把它链接到和我一样的blade.php页面。仅仅因为我重定向而不是使用视图声明类型,我还需要添加其他东西吗?
我的控制器:

public function show(): RedirectResponse
    {
        $projects = project::all();

        return redirect('list', ['projects' => $projects]);
    }

需要链接的页面(仅供参考):

@extends('layouts.layout')

@section('content')
    <main>
        @foreach($project as $projects)
            <h2>{{ $project->title }}</h2>
            <p>{{ $project->picture_url }}</p>
            <p>{{ $project->description }}</p>
            <p>{{ $project->explanation }}</p>
            <button> Edit </button>
            <button> Delete </button>
        @endforeach
    </main>
@endsection
e3bfsja2

e3bfsja21#

return redirect()->route('routename',compact('projects'));

093gszye

093gszye2#

要重定向到命名路由,您需要使用Redirector示例,您可以通过调用redirect方法获得该示例,而无需任何参数。
此示例允许您调用route方法,该方法将返回RedirectResponse到目标命名路由,如下所示:

return redirect()->route('route-name');

你可以在这个函数的第二个参数中传递参数,所以在你的例子中,你需要这样的东西:

public function show(): RedirectResponse
{
    $projects = project::all();

    return redirect()->route('list', ['projects' => $projects]);
}

由于这类重定向响应很常见,Laravel还提供了一个to_route助手,可以这样使用:

public function show(): RedirectResponse
{
    $projects = project::all();

    return to_route('list', ['projects' => $projects]);
}

查看Laravel文档:https://laravel.com/docs/10.x/redirects#redirecting-named-routes

相关问题