用戶模型選擇幾列,並選擇幾列從關係表
class UserModel extends Authenticatable
{
use Notifiable;
public $table = 'tbluser';
public $primaryKey = 'UserID';
public $timestamps = true;
public function Role() {
return $this->hasOne("\App\Models\User\Role\RoleModel", "RoleID", "RoleID");
}
}
角色模型
class RoleModel extends Model
{
public $table = 'tblrole';
public $primaryKey = 'RoleID';
public $timestamps = false;
}
我的代碼是會從兩個表中的所有列。下面的代碼顯示了從用戶表中的所有列,並從關係表中的所有列 - 角色
$data = UserModel::with("Role")->get();
我想下面的代碼從兩個表中選擇幾列。
$data = UserModel
::select("UserName", "EmailAddress", "LastName")
->with(['Role' => function ($q) {
$q->select('Role')
}])
->get();
但沒有工作。它根據用戶表顯示了三列,但沒有來自角色表的相關記錄的信息。
遺漏了什麼?
實際上名爲RoleID的'role'表的關鍵是? – Ohgodwhy
是的。它是RoleID。如果你願意,我可以發送模式。 – Pankaj
所以你有一個表角色,主鍵是'RoleID'而不是'id'? – Ohgodwhy