在 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
我有一个概览网站,顶部有过滤功能。用户可以过滤位置和部门。
控制器的代码如下所示:
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