Php laravel-将多个列表传递给视图

Php laravel-将多个列表传递给视图,php,laravel,laravel-4,blade,Php,Laravel,Laravel 4,Blade,我有一个联赛的名单,我正在传递给这样一个观点 $leagues = League::lists('name', 'id'); return View::make('gameworlds.create')->with('leagues', $leagues); 我想做的是通过另一个列表,例如,国家,但我不确定我将如何去做 e、 g 我怎样才能附加$countries? 我看到过将$data创建为数组,但同样,我也不完全确定如何设置它 有人能给我建议吗 DS非常简单,只需添加多个元素: $l

我有一个联赛的名单,我正在传递给这样一个观点

$leagues = League::lists('name', 'id');
return View::make('gameworlds.create')->with('leagues', $leagues);
我想做的是通过另一个列表,例如,国家,但我不确定我将如何去做

e、 g

我怎样才能附加$countries? 我看到过将$data创建为数组,但同样,我也不完全确定如何设置它

有人能给我建议吗


DS非常简单,只需添加多个元素:

$leagues = League::lists('name', 'id');
$countries = Country::lists('name', 'id');
return View::make('gameworlds.create')->with('leagues', $leagues)->with('countries', $countries);

你可以这样做

 $leagues = League::lists('name', 'id');
 $countries = Country::lists('name', 'id');
 $data['leagues'] = $leagues;
 $data['countries'] = $countries;
 return View::make('gameworlds.create')->with($data);
与trizz所说的相反,您可以从数组索引的名称访问视图中的变量。
意味着您可以通过$leagues/$国家/地区访问它们,如使用多个with statements

所有这些答案都是正确的,但没有人给您提供最好、最简单、最可读的版本:

return View::make('gameworlds.create')->with(array('leagues'=>$leagues,'countries'=> $countries));
// get data
$leagues = League::lists('name', 'id');
$countries = Country::lists('name', 'id');

// render view and pass data in
return View::make('gameworlds.create', compact('leagues', 'countries'));
需要考虑的事项:

PHP的函数非常有用 我更喜欢将数据作为view::make的第二个参数传递给我的视图,但您仍然可以使用->withcompact。。。 你可以试试这个

return View::make('gameworlds.create')
           ->with('leagues', $leagues)
           ->with('countries', $countries); // more withs could be added
还是这个

$array = array('leagues' => $leagues, 'countries' => $countries);
return View::make('gameworlds.create', $array);
或者使用快捷数组语法

或使用


我的错。我改变了我的答案:我本想对你的答案发表评论,而不是做出类似的回应,但评论需要50%的声誉。我将此标记为答案,因为它对我来说是最直观的答案。。。。只需为您想要添加的每件事情添加一个,多亏了大家,我将全面调查其他答案,以了解我的选择。非常感谢大家。我将更深入地研究这个紧凑的函数-我没有将它标记为答案,因为这次我使用了不同的解决方案。还是谢谢你的帮助
$array = array('leagues' => $leagues, 'countries' => $countries);
return View::make('gameworlds.create', $array);
return View::make('gameworlds.create', ['leagues' => $leagues, 'countries' => $countries]);
$leagues = League::lists('name', 'id');
$countries = Country::lists('name', 'id');
return View::make('gameworlds.create', compact('leagues', 'countries'));