0

users テーブルを扱う基本的な User モデルがあります。2 種類のユーザーがあり、それぞれのタイプに異なる属性があり、それらの属性を別のデータベースから読み取ります。

  User: name, email, type (x,y)
  type_x: gender, age
  type_y: color, location

だから私はuserテーブル、type_xテーブル、そしてテーブルを持っていtype_yます。

User、Typex、Typey の 3 つの異なるモデルを作成して、各モデルのデータを異なる方法で取得し、異なるテーブルを処理できるようにするにはどうすればよいですか?

4

1 に答える 1

1

必要なのは、3 つの異なるモデルを作成することだけです。

クラスTypeXとクラスのTypeYメソッドを使用する場合Userは、そのクラスを拡張します。Eloqeunt必要ない場合は、クラスを拡張してください。

あなたが書いたように、各タイプは異なるデータベースを使用します-その場合、異なる接続を指定する必要があります。さて、$connectionプロパティを追加するだけです。Laravel は名前付き接続を使用するため、app/config/database.phpファイルで指定された接続の名前を使用します。

<?php

class User extends Eloquent
{
    // this model loads data user table from default connection
    protected $table = 'user';

    // other methods...
}

class TypeX extends User
{
    // this model loads data user table
    protected $table = 'user';  

    // ... but from different DB connection
    protected $connection = 'connection1';
}

class TypeY extends User
{
    // this model loads data user table
    protected $table = 'user';

    // ... but from different DB connection
    protected $connection = 'connection2';
}
于 2013-09-14T16:41:47.460 に答える