2016-09-05 8 views
1

こんにちは私はAPIを書いており、関連するモデルに関する詳細情報を表示したいと思います。Laravelの関連モデルについての情報

routes.phpの

Route::resource('makes', 'MakesController'); 

MakesController.php

class MakesController extends Controller 
{ 
    public function index() 
    { 
     $data = Make::all(); 
     return response()->json($data); 
    } 
} 

これは作る(ID、名前) に関する情報のみを返しますが、どのように私はどのように多くのモデルも表示することができますそれぞれ作るのですか?

私はあなたがこのようMakeモデルのクラスで$visibleフィールドを定義することができ、これらの二つのモデル

class Make extends Model 
{ 
    public function models() 
    { 
     return $this->hasMany('App\CarModel'); 
    } 
} 


class CarModel extends Model 
{ 
    public function make() 
    { 
     return $this->belongsTo('App\Make'); 
    } 
} 

答えて

1

を定義している:

protected $visible = ['models']; 

これは自動的にarrayに関連したモデルの配列を追加します/ json

ます。また makeVisible方法とオプションの方法を使用することができます

:私はそれを試してみましたが、 - 私は、未定義のメソッドを照らし\ Databaseへのコールを取得

class MakesController extends Controller 
{ 
    public function index() 
    { 
     $data = Make::all(); 
     return response()->makeVisible('models')->json($data); 
    } 
} 
+0

\クエリー\ビルダー:: getModelsAttribute() – handsome

+0

は多分にしてみてください'$ visible'フィールドは' $ appends'のインスタンスです。 –

+0

nice!それをオプションにする方法はありますか?つまりURLに余分なパラメータを送信して追加するかどうかを指定します。 – handsome

関連する問題