我搜索主题 Laravel 5.5 - 针对经过身份验证的用户和来宾用户的单独表为已通过身份验证的用户和来宾用户生成了单独的URL。但是,我有一个表,其中几个字段适用于所有用户,剩下的仅供经过身份验证的用户使用。我应该拆桌子吗?
我想拆分表,因为下面的函数返回所有列。在视图中,我只选择要显示的特定字段。如果有人在没有浏览器的情况下发出GET请求,则无论用户类型如何,都不会返回所有列。
public function show(Balancesheet $Balancesheet) {
return view('Balancesheets.show', compact('Balancesheet'));
}
答案 0 :(得分:1)
如果要获取特定列,可以使用'pluck()'方法,该方法允许您选择特定列。如果您的Laravel版本早于5.3重命名为lists
:
if(\Auth::user()) {
User::pluck('user_column')->all();
} else {
User::pluck('guest_column')->all();
}
如果您需要多个列,可以在get()
方法中选择它们:
if(\Auth::user()) {
query->get(['guest','columns']);
} else {
query->get(['user','columns']);
}
答案 1 :(得分:0)
我发现以下代码更有用。
public function show(Balancesheet $Balancesheet) {
if(\Auth::user()) {
$Balancesheet = Balancesheet->take(10)->select('name', 'slug')->get();
} else {
$Balancesheet = Balancesheet->select('cashflow', 'district')->take(10)->select('name', 'slug')->get();
}
return view('Balancesheets.show',compact('Balancesheet'));
}