ユーザーモデルはモデルからいくつかの列を選択し、その関係テーブルからいくつかの列を選択し
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();
しかし、機能しませんでした。これは、ユーザーテーブルから期待される3つの列を表示しますが、関連付けられたレコードのロールテーブルの情報は表示されません。
何かが欠落していますか?私はあなたがこの試すことができると思い
実際に 'RoleID'という名前の' role'テーブルのキーはありますか? – Ohgodwhy
はい。 RoleIDです。あなたが望むなら、私はスキーマを送ることができます。 – Pankaj
だから、 'id'ではなく' RoleID'の主キーを持つテーブルロールがありますか? – Ohgodwhy