私はEloquentを利用して、データベースから一種の結果コレクションを取得しようとしています。Eloquent hasMany with Laravel 5.2でもっと深く進む方法は?
は私がas_inspectionsと呼ばれるテーブル、テーブルと呼ばas_green_areasとテーブルと呼ばれるas_assets
各検査は、単一の緑豊かなエリアを持ち、それぞれの緑のエリアには多くの資産を持っています。
私は検査をフェッチするとき、私はこのような何かを実行します。
検査モデル
namespace App;
use Illuminate\Database\Eloquent\Model;
class Inspection extends Model
{
protected $table = 'as_inspections';
public function greenAreas()
{
return $this->hasOne('App\GreenArea', 'id');
}
}
GreenAreaモデル
namespace App;
use Illuminate\Database\Eloquent\Model;
class GreenArea extends Model
{
protected $table = 'as_green_areas';
}
ルート今、私が好きな Route::get('inspections', ['middleware' => 'cors', function()
{
$isp = new \App\Inspection();
return $isp
->with('greenAreas')
->get();
}]);
dにOこのような何か:コメントに書かれたよう
Route::get('inspections', ['middleware' => 'cors', function()
{
$isp = new \App\Inspection();
return $isp
->with('greenAreas')
->get();
}]);
Route::get('inspections', ['middleware' => 'cors', function()
{
$isp = new \App\Inspection();
return $isp
->with('greenAreas')
->with('assets') // where each green area has its own set of assets
->get();
}]);
、私はその緑豊かなエリアのためにすべての資産を取得したいし、その検査のためのすべての緑地と思います。
どうすればいいですか? ありがとう!
こんにちは!この答えをありがとう!私は現在、それを実装しようとしています。ただ一つの質問。 greenareaidされていますか? as_inspectionsテーブルではgreen_area_fkという名前のfkを持っていますが、inspectionidをgreen_area_fkと交換するか、IDを検査テーブルの主キーとしておく必要がありますか?私はこれらのメソッドのオプションパラメータについてはかなり混乱しています... – Caius
それは働いた!ありがとう! hasManyなどのような雄弁なメソッドのオプションパラメータについてもっと学ぶために私にいくつかのリソースをリンクする時間があれば、それは素晴らしいことでしょう! – Caius
上記の私の更新されたコードを参照してください、私はあなたのような場合は、あなたが検査テーブルに外部キーを保持するように、あなたは緑の領域のための1つの検査を持っているので、belongsToメソッドが定義されているあなたの外来キーがどこに住んでいますか... ベストチュートリアルはLaravel.comです。ドキュメント、私は1年以上経って以来、それを参照しており、ERPシステムを完成しています.... –