【发布时间】:2013-12-17 16:13:21
【问题描述】:
在从辅助数据库获取模型实例之前,我试图在 Laravel 4 中设置模型正在使用的连接。我在Config/database.php 中正确填写了辅助连接的信息,但由于某种原因,当我拨打$userModel->all() 时,Laravel 会恢复为默认连接
$userModel = new User;
$userModel->setConnection('secondary_connection');
$users = $userModel->all();
这给出了错误
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'boradmin_master.users' doesn't exist (SQL: select * from ``users``) (Bindings: array ( ))
我追溯到可能是由于 Model::all() 函数中的一些代码而发生的:
* @param array $columns
* @return \Illuminate\Database\Eloquent\Collection|static[]
*/
public static function all($columns = array('*'))
{
$instance = new static;
return $instance->newQuery()->get($columns);
}
所以我的问题是,如何让 Laravel 尊重我使用我在 $userModel->setConnection('secondary_connection') 中提供的连接名称的愿望?
【问题讨论】:
标签: php mysql model laravel laravel-4