2017-12-22 11 views
1

私はLaravel 5.5でアプリケーションを作成しました。私はMySQLデータベースを使用しています。私は2つのテーブル 人を持っている:人と地球、そしてPersonController:私も2つのモデルを持っているidは、名前 と外部キーpeople.homeplanet_id参照はIDLaravel 5関連データを取得

を惑星:idが、名前は、 惑星をhomeplanet_id。 私は

Person::find($id)->getAttributes() 

を使用して、コントローラ内の人のデータを取得することができますが、それは、私は、データが()メソッドで次の

[ 
    id => 1 
    name => Name 
    homeplanet_id => Planet_name 
] 
+0

@webDevを、あなたに感謝し、それが助けました – Anastasia

答えて

0

使用のように見える取得できますか

[ 
    id => 1 
    name => Name 
    homeplanet_id => 1 
] 

のようなものです、 何かのように
$人= Person::where(array())->with('planet')->get(); //You can fetch all related data by passing multiple values for method with()
印刷するには

{{$person->planet->name}} //where planet indicated the relation on person model as follows 

ここで、planetは、Personモデルの関係を示しています。

Person extends model{ 
    public function panet(){ 
     //your relation one to one, one to many etc.....whatever 
    } 
} 

熱心ロードを探索してみてください。私たちの場合は


取得データ$person = Person::where(array('id'=>$id))->with('planet')->get();

そしてで人モデルはwith()メソッドを使用して惑星を取得するために、次のような何かをLaravel(雄弁)とスコープクエリでも。

Eagerローディングのリンクにアクセスしてください。すべてがORMによって行われます。 Link

1

Eloquentモデルと実際にアプリケーションのユーザーに返されるJSON応答の間にあるトランスフォーメーションレイヤーが必要な場合があります。

https://laravel.com/docs/5.5/eloquent-resources

だから、あなたはJSONを取得したい場合は、リソースを使用します。このデータフォーマットをブレードビューにしたいのであれば、それを変換するのは悪い考えです。ただ、ブレードのテンプレートにデータを扱う:planetは関係の名前がPersonモデルで定義されている

{{ $person->name }} lives on the planet {{ $person->planet->name }} 

public function planet() 
{ 
    return $this->belongsTo(Planet::class, 'homeplanet_id') 
} 
関連する問題