Laravel 从模型中选择几列,并从其关系表中选择几列
用户模型 榜样 下面是我的代码,它从两个表中获取所有列。下面的代码显示了用户表中的所有列以及关系表-角色中的所有列Laravel 从模型中选择几列,并从其关系表中选择几列,laravel,laravel-5.3,laravel-5.4,Laravel,Laravel 5.3,Laravel 5.4,用户模型 榜样 下面是我的代码,它从两个表中获取所有列。下面的代码显示了用户表中的所有列以及关系表-角色中的所有列 $data = UserModel::with("Role")->get(); 我在下面的代码中尝试从这两个表中选择几列 $data = UserModel ::select("UserName", "EmailAddress", "LastName") ->with(['Role' => function ($q) {
$data = UserModel::with("Role")->get();
我在下面的代码中尝试从这两个表中选择几列
$data = UserModel
::select("UserName", "EmailAddress", "LastName")
->with(['Role' => function ($q) {
$q->select('Role')
}])
->get();
但没有起作用。它按预期从用户表中显示三列,但没有从角色表中显示相关记录的信息
有什么遗漏吗?我想你可以试试这个:
$data = UserModel
::select("UserName", "EmailAddress", "LastName")
->with(['tblrole' => function ($q) {
$q->select('Role')
}])
->get();
或
希望这对您有所帮助。我想您可以试试这个:
$data = UserModel
::select("UserName", "EmailAddress", "LastName")
->with(['tblrole' => function ($q) {
$q->select('Role')
}])
->get();
或
希望这对您有所帮助。在您的with通话中,您需要从角色模型中选择主键,以便在查询后检索角色时将其附加。除此之外,在传递给with方法的闭包中选择任何其他列:
然后,您可以通过以下方式访问用户和角色:
// This will return the first user
$user = $data->first();
// This returns the entire user role model with the selected columns
$role = $user->Role;
// Access Role attributes through the Role Model
$role->Role;
在with调用中,您需要从角色模型中选择主键,以便在查询后检索角色时附加这些角色。除此之外,在传递给with方法的闭包中选择任何其他列:
然后,您可以通过以下方式访问用户和角色:
// This will return the first user
$user = $data->first();
// This returns the entire user role model with the selected columns
$role = $user->Role;
// Access Role attributes through the Role Model
$role->Role;
在您的选择中。。。。的,添加与tblUser表的主键相关的tblRole表的外键。
然后列出要获取的所有其他列
$data = UserModel
::select("UserName", "EmailAddress", "LastName")
->with(['Role' => function ($q) {
$q->select('RoleID', 'Role')
}])
->get();
在您的选择中。。。。的,添加与tblUser表的主键相关的tblRole表的外键。
然后列出要获取的所有其他列
$data = UserModel
::select("UserName", "EmailAddress", "LastName")
->with(['Role' => function ($q) {
$q->select('RoleID', 'Role')
}])
->get();
角色表上的键实际名为RoleID吗?是的。是罗莱德。如果你愿意,我可以发送schema。那么你有一个表roles,主键是RoleID,而不是id?角色表上的键实际上名为RoleID吗?是的。是罗莱德。如果您愿意,我可以发送schema。所以您有一个表roles,主键是RoleID,而不是id?第一部分和我在问题中写的相同。我错过什么了吗?第一部分和我在问题中写的一样。我错过什么了吗?我在with调用中也选择了RoleID列,但每个用户记录的关系始终为空。还有一点很重要……只有当我删除select语句并获取所有用户列时,您的代码才能工作。您必须将RoleID添加到UserModel select中,以便在运行查询后将角色附加到相应的用户。完美+1.认可的。赏金是urs。我在with call中也选择了RoleID列,但每个用户记录的关系始终为空。还有一点很重要……只有当我删除select语句并获取所有用户列时,您的代码才能工作。您必须将RoleID添加到UserModel select中,以便在运行查询后将角色附加到相应的用户。完美+1.认可的。赏金是我们的财富。
$data = UserModel
::select("UserName", "EmailAddress", "LastName")
->with(['Role' => function ($q) {
$q->select('RoleID', 'Role')
}])
->get();