我的一大块SQL保存在与Laravel安装的其余部分不同的数据库中。
当我使用特定模型时,如何在该模型中定义,我想使用特定数据库而不是config / database.php中定义的数据库?
我正在使用Laravel 5,因此需要与该版本相关。
更新:这是我的模特;
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Lookup extends Model {
protected $connection = 'postcodes';
}
以下是我config/database.php
;
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', $_ENV["DB_HOST"]),
'database' => env('DB_DATABASE', $_ENV["DB_DATABASE"]),
'username' => env('DB_USERNAME', $_ENV["DB_USERNAME"]),
'password' => env('DB_PASSWORD', $_ENV["DB_PASSWORD"]),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
'postcodes' => [
'driver' => 'mysql',
'host' => env('DB_HOST', $_ENV["DB_HOST"]),
'database' => env('DB_DATABASE', 'postcodes'),
'username' => env('DB_USERNAME', $_ENV["DB_USERNAME"]),
'password' => env('DB_PASSWORD', $_ENV["DB_PASSWORD"]),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
它无法正常工作 - 我无法让Whooops错误发挥作用,所以我得到的只是一个白屏(但这是一个单独的问题)。
我知道我的控制器代码是正确的,因为当我临时将表格复制到我的主要Laravel数据库时,一切正常。那么问题是什么?
答案 0 :(得分:0)
您可以在模型中定义protected $connection = 'yourohterconnection';
,并在数据库配置文件中添加另一个连接。
答案 1 :(得分:0)
我在Laravel forum上问了同样的问题,并且发布的解决方案对我有用。
基本上问题是这一行;
'database' => env('DB_DATABASE', $_ENV["DB_DATABASE_TWO"]),
或者在撰写本文时我的代码实际上是;
'database' => env('DB_DATABASE', 'postcodes'),
需要;
'database' => env('DB_DATABASE_TWO', $_ENV["DB_DATABASE_TWO"]),
然后您的.env
文件需要DB_DATABASE_TWO=postcodes
(或者您的第二个数据库的名称)。