Laravel 4:一个模型可以服务几个数据库表吗?

mik*_*kek 2 php laravel eloquent laravel-4

在我的应用程序中,我有几个mysql表:多伦多,温哥华,蒙特利尔等...我正在使用数据库类来处理它们,例如.

$data = DB::select('select * from toronto where id = ?', array($id));
Run Code Online (Sandbox Code Playgroud)

我想要做的是开始使用Eloquent.我是Laravel的新手,只是想知道是否有可能让一个模型与几个表一起工作,如:

class City extends Eloquent {
      protected $table_a = 'toronto';
      protected $table_b = 'vancouver';
      protected $table_c = 'montreal';
}
Run Code Online (Sandbox Code Playgroud)

Ant*_*iro 12

它不能,但你可以.有很多方法,一个是:

创建一个City模型,在其构造函数中请求表名:

class City extends Eloquent {

    public function __construct($city, array $attributes = array())
    {
        parent::__construct($attributes);

        $this->table = $city;
    }

}
Run Code Online (Sandbox Code Playgroud)

要使用它,您必须使用表名实例化您的类:

$toronto = new City('toronto');
Run Code Online (Sandbox Code Playgroud)

然后你可以随心所欲地做任何事情:

var_dump( $toronto->where('id',701057)->get() );
Run Code Online (Sandbox Code Playgroud)