2017-06-28 19 views
2

私はLaravel + AngularJSを使用してWebアプリケーションを作成しています。質問があります。データベースにある各テーブルのモデルが必要ですか?私のデータベースには87個のテーブルがあり、ユーザが望む入力に従ってそれらのすべてを照会する必要があります。Laravelのモデル5

すべてのテーブルにモデルファイルが必要であることを確認したいだけです。

+0

あなたが以前に試したことをいくつかのコードを追加してください。 –

答えて

0

あなたのDBのテーブルにアクセスすることが可能な2通りの方法があります。

  1. Eloquent ORM(モデルに依存)
  2. DBは、ファサードQuery Builder(モデルに依存しない)

前者は、より多くのです後者はクリーンではありませんが、大規模なアプリケーションを管理するのは難しいでしょう。アプリケーションに80以上のテーブルがあると言います。

また、Eloquentの方法を使用している場合は、子モデルで継承できる共通のコードを持つベースモデルを持つ方がよいでしょう。 DBの変更を行った「ユーザーID」を保存する場合は、ブート機能でAuth::id()と書いて、その値を表のchanged_byフィールドに割り当てることができます。

DB Facadeでは、DB操作を実行するたびにテーブル名をハードコードする必要があり、テーブルの名前を変更したときに矛盾が生じます。まれなシナリオですファイル内に複数のテーブルDB操作が行われている場合でも、それを管理するのは難しいでしょう。 DB操作を実行するためにアクセス可能なグローバルテーブル名変数を作成するようなオプションがあります。

結論: はい、雄弁な方法を実装するための80+モデルを作成することは痛いですが、彼らならば短期間のために、アプリケーションが大きくなるにつれて、あなたが管理することが容易になり、それは他の開発者のために良いだろうDBの概要を示すので、コードの可読性が向上します。

0

どのようにクエリを処理するかによって異なります。

Eloquent ORMを使用するには、オブジェクトとリレーションシップを処理するモデルクラスが必要です。これは、ピボット属性を介してアクセスできる中間関係表を除き、表のモデルです。

Raw SQLクエリもサポートされています。結果配列の各結果はPHPのStdClassオブジェクトになるため、実際にはモデルクラスは必要ありません。あなたは生のSQLを書く必要があります。

Laravel documentationを参照してください。

関連する問題