Laravelでテーブルを結合するのに実際の問題があります。Laravel 5複数のテーブルを結合する
私は2つのテーブルを結合することができますが、すぐに私は第三に参加しようとして、私は、クエリを実行するために、私のメインモデルにこれを追加しました
class Main extends Model
{
protected $table = 'main';
protected $primaryKey = 'id';
public function test()
{
return $this->hasOne('App\Models\Test', 'id', 'id');
}
public function row()
{
return $this->hasOne('App\Models\Row', 'id', 'id');
}
}
class Test extends Model
{
protected $table = 'test';
protected $primaryKey = 'id';
public function main()
{
return $this->belongsTo('App\Models\Main', 'id', 'id');
}
public function rows()
{
return $this->hasMany('App\Models\Row', 'id', 'id');
}
}
class Row extends Model
{
protected $table = 'row';
protected $primaryKey = 'id';
public function main()
{
return $this->belongsTo('App\Models\Main', 'id', 'id');
}
public function rows()
{
return $this->belongsTo('App\Models\Test', 'id', 'id');
}
}
はデータを取得していません。これで2つのテーブルが出力されます
public function scopeGetPart($query, somefield)
{
return $query->with('test.main')
->where('somefield', somefield);
}
これはphpMyAdminで実行すると機能します。あなたが$main->with('test.rows')
を試してみました私は、あなたのコードを実行せずにこのLaravelの方法
SELECT * FROM
main
INNER JOIN test ON
main.id = test.id
INNER JOIN row ON
main.id = row.id
AND main.my_field = row.my_field
WHERE somefield = 103288
を望んでどのようにすべての私の他のクエリを働き、完璧に動作接合する代わりに、これを使用? – AdRock