Php 查询laravel表时如何获得相同的结果数组
使用laravel时,内置的laravel模型方法返回结果数组列表。但是当查询同一个表时,会得到不同的对象。请检查以下代码-如何获得相同的结果集Php 查询laravel表时如何获得相同的结果数组,php,laravel,Php,Laravel,使用laravel时,内置的laravel模型方法返回结果数组列表。但是当查询同一个表时,会得到不同的对象。请检查以下代码-如何获得相同的结果集 $users = User::all(); Illuminate\Support\Collection Object ( [items:protected] => Array ( [0] => stdClass Object ( [id] => 10
$users = User::all();
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[0] => stdClass Object
(
[id] => 10
[email] => amirtha@gmail.com
)
[1] => stdClass Object
(
[id] => 12
[email] => renjith@123.com
)
)
但在使用sql查询时,如下所示:
$result = DB::table('users as u')
->select('u.id','u.email','u.role','u.created_at')
->join('roles as r','r.id','=','u.role')
->where('u.role', '!=', 1 )
->orderBy('u.name','asc')
->get();
print_r($result);
我得到:
Illuminate\Database\Eloquent\Collection Object
(
[items:protected] => Array
(
[0] => App\User Object
(
[fillable:protected] => Array
(
[0] => name
[1] => email
[2] => password
[3] => lastname
[4] => mobile
[5] => role
)
[hidden:protected] => Array
(
[0] => password
[1] => remember_token
)
[casts:protected] => Array
(
[email_verified_at] => datetime
)
[connection:protected] => mysql
[table:protected] => users
[primaryKey:protected] => id
[keyType:protected] => int
[incrementing] => 1
[with:protected] => Array
(
)
[withCount:protected] => Array
(
)
[perPage:protected] => 15
[exists] => 1
[wasRecentlyCreated] =>
[attributes:protected] => Array
(
[id] => 1
[name] => amritha
[email] => amritha@gmail.com
)
此查询与从用户选择*相同 $users=User::all 而这个查询与前面的查询不同
$result = DB::table('users as u')
->select('u.id','u.email','u.role','u.created_at')
->join('roles as r','r.id','=','u.role')
->where('u.role', '!=', 1 )
->orderBy('u.name','asc')
->get();
print_r($result);
我认为您的问题是,当您想使用表别名时,那么下面该怎么办:
$result = User::query()->from('User as u')
->select('u.id','u.email','u.role','u.created_at')
->join('roles as r','r.id','=','u.role')
->where('u.role', '!=', 1 )
->orderBy('u.name','asc')
->get();
您使用的是什么版本的Laravel?您是否希望结果作为一组雄辩的模式?larvel 5.3版您是否在用户模型中设置了角色关系?我没有在用户模型中设置关系,如何设置关系我可以使用$users=User::all;where用户角色不等于1如何将where与user::allhello!:D我认为你正在寻找的方法是加入的有力方式,你应该首先创建关系,请参阅Laravel文档,然后你可以尝试此用户::选择'id',电子邮件','role',created_at->has'roles'->orderBy'uname',asc'->get;谢谢,有人怀疑使用User::query->from'Users as u'与DB::table'Users as u'有什么区别@Osama Alvi DB对象以原始格式查询数据库,这很容易被SQL注入,而使用elounting可以提高查询数据的安全性:它是可选的,可以帮助您查找函数,如尝试删除查询函数,然后选中函数“from”,它将变为黄色。