Laravel 5.5 - 经过身份验证的用户和访客用户的独立表

时间:2018-02-11 15:08:27

标签: php mysql laravel-5 laravel-5.5

我搜索主题 Laravel 5.5 - 针对经过身份验证的用户和来宾用户的单独表为已通过身份验证的用户和来宾用户生成了单独的URL。但是,我有一个表,其中几个字段适用于所有用户,剩下的仅供经过身份验证的用户使用。我应该拆桌子吗?

我想拆分表,因为下面的函数返回所有列。在视图中,我只选择要显示的特定字段。如果有人在没有浏览器的情况下发出GET请求,则无论用户类型如何,都不会返回所有列。

public function show(Balancesheet $Balancesheet) { 
    return view('Balancesheets.show', compact('Balancesheet')); 
} 

2 个答案:

答案 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')); 
}