【问题标题】:show/hide record based on field Laravel 5基于字段 Laravel 5 显示/隐藏记录
【发布时间】:2016-08-22 07:35:24
【问题描述】:

我有表users,其中包含可以登录我的网站的users,所以我有这样的东西,你可以看到adminprivileges 1 而qwertprivileges 2,我想显示任何有privileges 2,我该怎么做?

在我的网页中,它看起来像这样,您可以看到该表中显示了管理员,我不想显示管理员记录,我只想显示具有 privileges 2 的记录

查看

@foreach($users as $user) 
        <tr class="odd gradeX">
            <td>{{$user->cv_name}}</td>
            <td>{{$user->cv_position}}</td>
            <td>{{$user->cv_country}}</td>
            <td>{{$user->email}}</td>
            <td>{{$user->cn_phone}}</td>
            <td>{{$user->cv_address}}</td>
            <td>
                <a class="btn btn-success" title="edit" data-id={{$user->id}} data-action="user-edit"><i class="glyphicon glyphicon-pencil"></i></a>
                <a class="btn btn-danger" title="delete" data-id={{$user->id}} data-action="user-delete"><i class="glyphicon glyphicon-trash"></i></a>
            </td>
        </tr>
@endforeach

控制器

public function index(){
    return view('user')
    ->with('title','User')
    ->with('users',User::all());
}

public function getAll(){
    $data = User::all();
    $response = array(
            'content' => $data,
            'status' => 'success',
        );
    return Response::json($response);
} 

怎么做?确定 if else case 可能吗?

【问题讨论】:

  • 您应该使用查询生成器将 where 子句添加到 $users 变量。您可以发布包含 $users 变量的控制器吗?
  • 完成,再次检查代码

标签: javascript php mysql laravel


【解决方案1】:

另一个良好做法是像这样使用范围

- 在用户模型中

public function scopeMember($query){
    return $query->where('privileges','<>',1);
}

- 在控制器中。很容易获得只有会员

改变

->with('users',User::all());

->with('users',User::member()->get());

【讨论】:

  • 在控制器的哪个部分我应该添加那行代码?
  • 我更新了。我建议这样做是为了将来可维护和更可扩展
  • 哇,好啊,你能简单解释一下吗,因为我看不到模型中的函数和控制器中的函数调用之间的联系
  • Laravel 将 member() 函数自动转换为新添加的范围,并使用通常的查询作为其参数。这只是将某些 where 子句添加到通常查询中的一种快速而智能的方法。
猜你喜欢
  • 2019-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-25
  • 2019-03-20
  • 2014-08-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多