首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未定义的属性:Database\Database\MySqlConnection::$name

未定义的属性:Database\Database\MySqlConnection::$name
EN

Stack Overflow用户
提问于 2018-06-09 03:54:44
回答 1查看 8.3K关注 0票数 2

您好,我正在尝试用laravel做一个小系统过滤,使用我的控制器中的以下函数来根据用户的角色或名称过滤用户,这是我当前的代码:

profilecontroller.php:

代码语言:javascript
复制
public function membrevis()
{
    $filter = isset($_GET['filter']) ? $_GET['filter'] : null;
    $users = DB::table('users')
        ->join('user_role', 'users.id', '=', 'user_role.user_id')
        ->join('roles', 'user_role.role_id', '=', 'roles.id')
        ->where('users.valid','=',0)
        ->select('users.*','roles.description');
   if ($filter != null) {
        $users->where('users.name','like','%'.$filter.'%')
            ->orWhere('roles.description',' like','%'.$filter.'%');
   }
   $users->get();

   return view('membre2',['users'=> $users]); 
}

我的视图有一个输入表单,您可以在其中键入要筛选的成员的名称或角色:

membre2.blade.php:

代码语言:javascript
复制
<form action="/profilecontroller/membrevis" method="get">
    <input type="text" name="filter" >
    <button type="submit">filter</button>
</form> 

@foreach($users as $users) 

   <h4 class="media-heading">{{ $users->name }}</h4>

@endforeach

我得到的错误是Undefined property: Illuminate\Database\MySqlConnection::$name

我不知道为什么我会得到这个错误,我显然是用下面这行命令将$users传递给我的视图:

代码语言:javascript
复制
return view('membre2',['users'=> $users]);

任何帮助都将不胜感激!谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-09 04:06:01

使用$users->get()返回集合实例时,必须分配$users = $users->get();更正代码为

代码语言:javascript
复制
    public function membrevis()
    {
        $filter = isset($_GET['filter']) ? $_GET['filter'] : null;
        // also can use this structure $filter = isset($_GET['filter']) ?? null;
        $users = DB::table('users')
            ->join('user_role', 'users.id', '=', 'user_role.user_id')
            ->join('roles', 'user_role.role_id', '=', 'roles.id')
            ->where('users.valid','=',0)
            ->select('users.*','roles.description');
        if ($filter != null) {
            $users->where('users.name','like','%'.$filter.'%')
                ->orWhere('roles.description',' like','%'.$filter.'%');
        }
        $users = $users->get();

        return view('membre2',['users'=> $users]); 
    }

同样在刀片式服务器中修复

代码语言:javascript
复制
@foreach($users as $user) 

   <h4 class="media-heading">{{ $user->name }}</h4>

@endforeach
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50767610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档