Laravel Eloquent如何从数组中获取结果

时间:2019-06-18 14:50:26

标签: php laravel

我一直在花很多时间寻找它。

我是Laravel的新手,(来自CodeIgniter),除非有必要,否则我会尝试使用Laravel的方法来代替在任何地方使用纯php / sql。

/lib/../lib64/crt1.o
/lib/../lib64/crti.o
/opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o
/tmp/ccdlEH9g.o # -- that's the assembler output for your file. If you want sane names, supply `-save-temps` to gcc.
/opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/crtend.o
/lib/../lib64/crtn.o

我正在尝试获取$ role_id。

var_dump给了我这个。

$role_id = Role::select('role_id')
                    ->where('type','Admin')
                    ->get();
    var_dump($role_id);

我只希望有一个mysql结果行,而不是这个。

我正在寻找的只是这个object(Illuminate\Database\Eloquent\Collection)#249 (1) { ["items":protected]=> array(1) { [0]=> object(App\Role)#252 (26) { ["connection":protected]=> string(5) "mysql" ["table":protected]=> string(5) "roles" ["primaryKey":protected]=> string(2) "id" ["keyType":protected]=> string(3) "int" ["incrementing"]=> bool(true) ["with":protected]=> array(0) { } ["withCount":protected]=> array(0) { } ["perPage":protected]=> int(15) ["exists"]=> bool(true) ["wasRecentlyCreated"]=> bool(false) ["attributes":protected]=> array(1) { ["role_id"]=> int(99) } ["original":protected]=> array(1) { ["role_id"]=> int(99) } ["changes":protected]=> array(0) { } ["casts":protected]=> array(0) { } ["dates":protected]=> array(0) { } ["dateFormat":protected]=> NULL ["appends":protected]=> array(0) { } ["dispatchesEvents":protected]=> array(0) { } ["observables":protected]=> array(0) { } ["relations":protected]=> array(0) { } ["touches":protected]=> array(0) { } ["timestamps"]=> bool(true) ["hidden":protected]=> array(0) { } ["visible":protected]=> array(0) { } ["fillable":protected]=> array(0) { } ["guarded":protected]=> array(1) { [0]=> string(1) "*" } } } }

我缺少直接获取此功能的函数,但无法从文档中找到它。

["role_id"]=> int(99)给了我找不到的财产。

4 个答案:

答案 0 :(得分:1)

您有带有get方法的项目。这就是无法访问role_id的原因。

如果要记录一条记录,则可以使用first而不是get方法。

您可以使用dd()函数。

$role_id = Role::select('role_id')
                ->where('type','Admin')
                ->first();
dd($role_id);

答案 1 :(得分:0)

您可以这样做:

$role_id = Role::all(['role_id'])->where('type','Admin')->first(); or Role::where('type', 'Admin');

Instead of var_dump you can use dd($role_id) or var_dump($role_id), it dies and dumps at the same time .

答案 2 :(得分:0)

使用->first()代替->get()get()返回收集。

答案 3 :(得分:0)

这是正确的方法。

$response = Role::select('role_id')
                       ->where('type','Admin')
                       ->first();
        $admin_id = $response->role_id;