我想使用SQL Query中的数据,在这里进一步解释我的代码:
$myquery = DB::table('attendances')->select('user_id')->where('date_only', '=', $newdate)->orderBy('logon','asc')->get();
$myquery->user_id;
现在我希望我的$ myquery的值为USER_ID的值,如果我使用上面的代码,我会收到错误 - $ myquery-> user_id;
答案 0 :(得分:19)
pluck
不推荐使用,因为 5.2 它的含义完全不同(如lists
所示),所以请改用value
方法。您正在尝试获取阵列的属性,因此很明显您会收到错误。
如果您只需要单个字段,请使用pluck
(默认返回单个值 - 字符串):
// let's assume user_id is 5
DB::table('attendances')
->where('date_only', '=', $newdate)
->orderBy('logon','asc')
->pluck('user_id'); // "5"
当你需要整行时,first
(返回stdObject):
$att = DB::table('attendances')
->where('date_only', '=', $newdate)
->orderBy('logon','asc')
->first();
$att->user_id; // "5"
$att->any_other_column;
get
是你想要多个结果(返回简单的stdObjects数组)的时候:
$result = DB::table('attendances')
->where('date_only', '=', $newdate)
->orderBy('logon','asc')
->get();
$result; // array(0 => stdObject {..}, 1 => stdObject {..}, ...)
$result[0]->user_id; // "5"
答案 1 :(得分:15)
那是Laravel 5.3:
$user_id = DB::table('attendances')->select('user_id')->where('date_only', '=', $newdate)->orderBy('logon','asc')->value('user_id');
答案 2 :(得分:4)
这将仅返回user_id
showCirculares
答案 3 :(得分:0)
我觉得有些混乱;但我使用的是Laravel 5.3,并且不推荐使用pluck和value函数,如上所述。
更多说明: 如果只想要所有值,将使用 pluck()代替 get() 当您只需要一个值时,将使用 value()代替 first()。
使用方法 all()来获取itmes数组。 用法:
\App\User::whereIn('mobile',['971700000', '965000000'])->select('id')->pluck('id')->all();
答案 4 :(得分:0)
答案 5 :(得分:0)
DB::table('table_name')->select('column_na')->get();
答案 6 :(得分:0)
如果您已经有数组中的数据,并且只想过滤此类数据,您也可以这样做
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>
答案 7 :(得分:-2)
$myquery = DB::table('attendances')->select('user_id')
->where('date_only', '=', $newdate)->orderBy('logon','asc')->get();
默认情况下,返回的数据将是对象数组。你需要循环它。
e.g。
foreach($myquery as $i)
{
echo $i->user_id;
}