在 return 语句中包含多个变量

Including multiple variables in return statement

我有一个概览网站,顶部有过滤功能。用户可以过滤位置和部门。

控制器的代码如下所示:

public function index(Request $request)
    {


        $posts = Post::orderBy('titel')
            ->get();

        $standorts = Standort::get();

        $abteilungs = Abteilung::get();

        if ($request->filled('s')) {
            $query = strtolower($request->get('s'));
            $posts = $posts->filter(function ($post) use ($query) {
                if (Str::contains(strtolower($post->Titel), $query)) {
                    return true;
                }
                return false;
            });

        }
        return view('posts.overview', ['posts' => $posts], ['standorts' => $standorts]);
    }

我还需要提供 $abteilungs = Abteilung::get();,但是当我 return 时,它是这样的:

return view('posts.overview', ['posts' => $posts], ['standorts' => $standorts], ['abteilungs' => $abteilungs]);

括号中的最后部分是灰色的,我无法访问它。

有没有办法让它工作,或者 return 视图是否仅限于两个参数?

要将多个变量传递给您的视图,您应该这样做

return view('posts.overview', ['posts' => $posts, 'standorts' => $standorts, 'abteilungs' => $abteilungs]);

你也可以这样试试

$data = [
    'posts' => $posts, 
    'standorts' => $standorts, 
    'abteilungs' => $abteilungs,
];

return view('posts.overview')->with($data);

或者,

return view('post.overview',compact('posts','standorts','abteilungs'));

view方法中,第二个参数是传递给view的数据,你可以传递任意多个变量 如下所示:

return view('post.review',['variableOne' => $variableOne,'variableTwo' => `$variableTwo,'variableThree' => $variableThree])`

您可以通过多种方式将变量传递给视图..

方式 1:

$variables = [
       'variable1'=>'something goes here',
       'variable2'=>'something goes here',
];
return view('view-file')->with($variables );

方式二:

return view('view-file')->with(['variable1'=>'something goes here','variable2'=>'something goes here']);

方式 3:

$variable1 = 'something goes here';
$variable2 = 'something goes here';

return view('view-file')->withVariabl1($variable1);
or
return view('view-file')->withVariabl2($variable2); 
or
return view('view-file')
->withVariable2($variable2)
->withVariable1($variable1); 

方式 4

$variable1 = 'something goes here';
$variable2 = 'something goes here';

return view('view-file',compact('variable1','variable2'));

希望您清楚如何以多种方式发送变量以查看。如果你想传递1个或2个变量并且以后不需要增加变量那么推荐way 4。 但根据我的观点和现实生活经验,我总是建议使用 方式 1