0

laravel 5.5に、外部キーで別のモデルにリンクされたモデルを指定する方法がある場合、両方のモデルの属性を完全に結合した結果を取得できるかどうかを理解しようとしています。2 つのモデルを返してマージすることは避けたいと思います。

私のモデルのコードの下:

class Event extends Model { 
     public function location(){
         return $this->hasOne('App\Location');
     }
 }

コントローラーでは、それぞれのイベントの場所情報を取得しますが、結果では、イベントと場所の両方の情報を確認したいと考えています。

コントローラーで ORM を使用してモデルを呼び出すと、次のようになります。

  $event = Event::where('name',$name)->first()->location;

  $model=$eventLocation->getModel();
   return $model;

そして、このjsonを取得します

{"id":12,"created_at":null,"updated_at":null,"name":"location_test","event_id":"1"}

これには、場所の属性のみが含まれ、イベントの属性は含まれません! どうすれば両方を表示できますか?

ありがとう

4

3 に答える 3

1

試してみてください:

$event = Event::with('location')->where('name', $name)->first();
$location = $event->location;

このようにして、イベント自体と完全な関連場所をlocationフィールドとして取得します。

ドキュメントのEager Loadingセクションを参照してください。

于 2017-12-22T14:53:19.590 に答える