php – Laravel链式Eloquent Query无法返回结果数组

我正在尝试在Laravel上进行链式Eloquent查询,并使用条件带来用户表中的用户,即,如果它们属于确定的房子.我正在努力寻找让它发挥作用的方法.有人能帮我吗?

这是我的控制器方法

public function create(){

        if(Auth::user()->role->id == 1){

            $house = House::findOrFail(Auth::user()->house->id);

            $jobs = Job::pluck('name', 'id')->all();
            $categories = Category::pluck('name', 'id')->all();
            $users = User::pluck('name', 'id')->where('house_id', $house)->get();

            return view('admin.tasks.create', compact('jobs', 'categories', 'users'));

        }else{

            return redirect('home');

        }

    }

使用get()时抛出的错误是:

Type error: Too few arguments to function Illuminate\Support\Collection::get(), 0 passed in /Applications/MAMP/htdocs/Housing_around/app/Http/Controllers/AdminTasksController.PHP on line 55 and at least 1 expected

并且正如所想的那样,最后的all()并没有在返回的数组中带来任何东西

有人知道如何继续吗?

谢谢!

解决方法:

我给你的建议是使用策略来确定当前经过身份验证的用户的角色.
如果您认为控制器中的此方法具有处理权限,则从数据库获取数据并将其传递给视图.

当控制器角色时它只是模型(数据结构)和表示(视图)之间的桥梁

查看Laravel authorization.

然后pluck()方法一个方法,它在引擎盖下调用get(),所以你不能同时调用它们.对于all()和get()相同,all都在后台调用get方法.

那就像$users = User :: where(‘house_id’,$house) – > pluck(‘name’,’id’);

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...