Laravel Tenancy v3如何通过Eloquent模型访问中央数据表?
解决Tenancy for Laravel v3中用Eloquent访问中央表的问题
要在Tenancy for Laravel v3里通过Eloquent模型访问中央表,核心是给模型指定中央数据库连接,具体操作如下:
- 给中央表对应的Eloquent模型设置
$connection属性,指向你的中央数据库连接名(默认通常是mysql,可在config/database.php里确认):
namespace App\Models; use Illuminate\Database\Eloquent\Model; class Course extends Model { // 指定使用中央数据库连接 protected $connection = 'mysql'; // 若表名不符合Eloquent默认复数规则,需手动指定 // protected $table = 'courses'; }
- 之后直接调用模型的查询方法即可:
$courses = Course::all();
如果需要临时切换连接(比如同一模型有时访问租户表、有时访问中央表),可以用on()方法动态指定连接:
// 临时使用中央连接查询 $courses = Course::on('mysql')->get(); // 切换回租户连接(如果当前上下文是租户环境) $users = User::onTenant()->get();
注意:要确保config/database.php中配置的中央连接信息正确,且该连接拥有中央表的访问权限。
内容的提问来源于stack exchange,提问作者Vince
相关产品推荐
相关产品推荐

