私は3つのテーブルを持っている、第一は、2日からFKを持ち、そして第二は、第三のFKを持っている:私は必要なものEraquent in Laravel-Datatables、selectで選択しますか?
Table 1: [admin_demandas]
-------------------------
id_demanda| projec_id
-------------------------
Table 2: [admin_projec]
-------------------------
id_projec | sub_id
-------------------------
Table 3: [admin_sub]
-------------------------
id_sub | name
-------------------------
は、表3から「名前」を取得することですが、始まりますテーブルのモデル1.
私はこのような何かしようとしていた。これらの2(JOINの3つのテーブルを行う方法がわから(2テーブル)を登録しようではなく、私は1つだけで、私のDataTableをやった
$data = AdminDemanda::select([
'id_demanda',
'admin_projec.sub_id AS sub_id',
'admin_sub.name AS name',])
->join('admin_projec', 'admin_demandas.projec_id', '=', 'admin_projec.id_projec')
->join('admin_sub', 'admin_projec.sub_id', '=', 'admin_sub.id_sub')
->get();
return Datatables::of($data)->make(true);
を)。このエラーが発生しました:
[Err] 1054 - Unknown column 'admin_projec.sub_id' in 'on clause'
クエリで変更する必要があるものはありますか? DB :: raw()クエリでEloquentの代わりにクエリビルダーを使用する必要がありますか?
私が書いたコードは一例です.2番目のテーブルは4つのFKのように別のテーブルを指していますが、別の方法でクエリをインすることができますモデルを編集していますか?とにかくこのモデルの事は動作しますか?ありがとう、私は後でそれを試してみます。 – pmirnd
モデルを使用することはデータベース関係を扱う最良の方法ですと私は思います。あなたはそれらを一度しか設定しないので、すべてはいつでも動作します。フィールド名のテーブル名を変更した場合、それを実行するためにいくつかのものを編集するだけで済みます。ジョインでフル・クエリーを使用する場合は、このテーブル/フィールドを使用する各ページを編集する必要があります。アプリケーションが大きくなると、それは本当に悪夢になります。 – Raccoon