Php Laravel如何使用查询生成器返回单列值
我想使用SQL查询中的数据,进一步解释一下,下面是我的代码: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
$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"]