Php Laravel如何使用查询生成器返回单列值

Php Laravel如何使用查询生成器返回单列值,php,laravel,Php,Laravel,我想使用SQL查询中的数据,进一步解释一下,下面是我的代码: $myquery = DB::table('attendances')->select('user_id')->where('date_only', '=', $newdate)->orderBy('logon','asc')->get(); $myquery->user_id; 现在我希望$myquery的值是USER\u ID的值,如果我使用上面的代码-$myquery->USER

我想使用SQL查询中的数据,进一步解释一下,下面是我的代码:

    $myquery = DB::table('attendances')->select('user_id')->where('date_only', '=', $newdate)->orderBy('logon','asc')->get();

    $myquery->user_id;
现在我希望$myquery的值是USER\u ID的值,如果我使用上面的代码-$myquery->USER\u ID,我会得到错误

 $myquery = DB::table('attendances')->select('user_id')
            ->where('date_only', '=', $newdate)->orderBy('logon','asc')->get();
默认情况下,返回的数据将是对象数组。你需要把它绕过去

e、 g

编辑:从5.1版开始,不推荐使用“Pull”,因为5.2版的含义完全不同(因为
列出了过去的
),所以改用
value
方法。
您试图获取数组的属性,所以很明显您得到了错误

如果只需要单个字段,则使用
pull
(默认情况下返回单值-字符串):

当需要整行时,则首先
(返回stdObject):

get
是指需要多个结果时(返回stdobject的简单数组):


这是针对Laravel 5.3的:

$user_id = DB::table('attendances')->select('user_id')->where('date_only', '=', $newdate)->orderBy('logon','asc')->value('user_id');

我认为有一些混乱;但我使用的是Laravel5.3,如前所述,Pull和value函数并没有被弃用

如需进一步澄清: 当您只需要所有值时,将使用pulk()而不是get() 当您只需要一个值时,将使用value()代替first()

使用方法all()获取ITME数组。 用法:


这将仅返回用户\u id

$myquery = DB::table('attendances')->where('date_only', $newdate)->select('user_id')->pluck('user_id')->first();
根据


就可以了。

DB::table('table_name')->select('column_name')

如果数组中已有数据,并且只想过滤此类数据,也可以这样做

  0 => "first_name"
  1 => "middle_name"
]


$users_data = User::where('id', '1')->get($filter_data );
return $users_data; ```

<pre> In laravel 5.4 works perfect for me </pre>
0=>“名字”
1=>“中间名”
]
$users\u data=User::where('id','1')->get($filter\u data);
返回$users\u数据```
$result = CustomerInfo::select('eventDate')->pluck('eventDate');
在拉威尔5.4工程完美为我
要仅获取单个列的值列表,可以这样做

["2019-03-25","2020-03-31","2019-03-31","2019-04-24","2019-11-26"]
此处$result将给出如下结果:


希望它能帮助某人

我想这是因为你没有检索到一个结果。因此,如果您想要用户id,可以迭代$myquery,或者选择第一个结果)
->first()
,正如@GiuServ所说:get()将返回考勤对象数组,即使只有一个对象与where条件匹配。其中first()将从结果中返回第一个匹配的对象。甚至不止一个对象与条件匹配。您在哪里读到5.1中不推荐使用Pull?
value()!是的,
value
是新的
pulk
Nevermind,我只知道pulk函数从5.1改过来了。我直接从5.3开始,之前它没有同样的行为!从表中检索单个行/列
$email=DB::Table('users')->where('name','John')->value('email')检索列值列表
$titles=DB::table('roles')->pull('title')
select('user_id')
不需要编辑工作,但是如果没有找到行,您将得到一个异常“Call value()on null”应该解释您的答案
\App\User::whereIn('mobile',['971700000', '965000000'])->select('id')->pluck('id')->all();
$myquery = DB::table('attendances')->where('date_only', $newdate)->select('user_id')->pluck('user_id')->first();
DB::table('users')->select('name');
  0 => "first_name"
  1 => "middle_name"
]


$users_data = User::where('id', '1')->get($filter_data );
return $users_data; ```

<pre> In laravel 5.4 works perfect for me </pre>
$result = CustomerInfo::select('eventDate')->pluck('eventDate');
["2019-03-25","2020-03-31","2019-03-31","2019-04-24","2019-11-26"]