ケアレスミスと思いますが、質問させて下さい。
UsersとUserRoleという2つのテーブルがあり、Usersを読み込んだ時に一緒にUserRoleも取得したいと考えています。
モデルは以下のように作成しました。
User.php
1namespace App\Models; 2use Illuminate\Database\Eloquent\Model; 3use Illuminate\Foundation\Auth\User as Authenticatable; 4use Auth; 5 6class User extends Authenticatable{ 7 public function user_role(){ 8 return $this->belongsTo('App\Models\UserRole', 'role_id', 'id'); 9 } 10} 11
UserRole.php
1 2<?php 3namespace App\Models; 4use Illuminate\Database\Eloquent\Model; 5 6class UserRole extends Model 7{ 8 protected $table = 'user_role'; 9} 10
リレーションが上手く行っているかどうか確かめるため、tinkerを使い、以下のようにコマンドを入力しましたが、期待する結果は得られませんでした。
>>> App\Models\User::where('id', '81')->user_role->get(); Exception with message 'Property [user_role] does not exist on the Eloquent builder instance.'
リレーションはuser側にrole_idが存在しているので、user側からデータを取得する場合はbelongsToではないかなとの認識です。
tinkerはコマンドが間違っているかもしれません。
ご指摘よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/29 04:37