最佳做法是什么,例如显示用户数据?
在UserContoller中的show function中检索用户,并将用户变量传递给视图?
在show函数中返回视图,传递$ user_id,并在视图上检索用户?
示例1:
public function show($id)
{
$user = User::findOrFail($id);
return view('config.users.show')->withUser($user);
}
示例2:
public function show($id)
{
return view('config.users.show')->withId($id);
}
答案 0 :(得分:2)
视图负责数据表示。
视图可以是任何信息的输出表示,例如a 图表或图表。相同信息的多个视图 可能的,例如管理条形图和表格视图 会计师。
模型直接管理数据,逻辑和规则 应用
第三部分控制器接受输入并将其转换为 模型或视图的命令
<强> Source 强>
您应该将data
传递给视图。并在那里输出,所以你的第一个例子是正确的。
而不是withUser()
继续使用with(key, value)
示例:
public function show($id)
{
$user = User::findOrFail($id);
return view('config.users.show')->with('user', $user);
}
在视图中:
{{ $user->name }} //assuming user have a name attribute
答案 1 :(得分:1)
添加到xdevnull的答案,id喜欢添加和分享关于传递数据的更多信息,因为当我第一次学习laravel这是我努力的一个更大的领域,所以我觉得你:)
return view('config.users.show')->withUser($user);
Laravel的动态功能是否应该有效。
但我个人更喜欢 - &gt; with('user',$ user);方法
然后在你的刀片视图中:
{{$user->propertyname}}
我知道在你的情况下你只需要一个模型,但是id think id分享一些传递多个东西的例子
有时您会发现自己传递的是多个模型或数据:
$user = User::findOrFail($id);
$someOtherModel = Model::findOrFail($id);
在这种情况下,你应该使用with方式并传递你的东西数组:
return view('config.users.show')->with([
'user'=> $user,
'otherModel'=>$someOtherModel
]);
然后在你看来:
{{$ otherModel-&GT; PROPERTYNAME}} {{$用户&GT; PROPERTYNAME}}
最近我发现自己检索了所有ID的结果,以便能够在我视图的不同部分使用特定的结果。我问了一个关于这个的问题,所以给出的答案之一就是将我的模型集合变成一个数组。正如我所说,有时您可能正在检索所有结果,并希望通过特定列或值来选择某些结果。
例如,我有一个模型来跟踪网站数据(电话,地址,社交媒体链接等),并希望将它们传递到我的视图,并根据其名称访问页面的特定部分:
$site_meta = \App\SiteMeta::lists('value', 'name');
return view($page_string, compact('site_meta');
在我的刀片模板上:
{{$site_meta['Facebook']}}
希望这会对你有所帮助,我知道当我学习它的时候肯定会帮助你。)