是否可以在没有默认数据库的情况下使用Laravel 4

Tim*_*wis 8 php database laravel laravel-4

我正在创建一个从许多不同数据库中读取信息的应用程序,但实际上并没有自己的数据库,因为没有任何信息可以在任何地方写入.

基本上,用户选择记录和类型,应用程序将.pdf根据他们的选择生成文件.我定义了多个连接,app/config/database.php但我不想默认连接到任何连接.有没有办法告诉Laravel 不要连接数据库?我尝试了一些事情(全部app/config/database.php),首先是:

'default' => NULL,
// and 
//'default' => '',
Run Code Online (Sandbox Code Playgroud)

哪两个都回归:

未定义的索引:驱动程序

我也尝试过:

'default' => 'none',

'connections' => array(
    'none' => array(
        'driver' => '',
        'host' => '',
        ...
     ),
 ),
Run Code Online (Sandbox Code Playgroud)

然后返回:

不支持的驱动程序[]

不支持的主机[]

...

最后设置'default' => '',返回:

数据库[]未配置.

我已经找到了在没有数据库连接的情况下使用Laravel模型的方法,但实际上并没有使用Laravel本身.

编辑:

设置与现有mysql连接的连接而不选择数据库"工作":

'default' => array(
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => '',
    'username'  => '****',
    'password'  => '****',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否是正确的方法.这感觉就像一个解决方案,而不是一个实际的解决方案.

And*_*lis 5

我会做以下事情:

'driver' => 'sqlite',
Run Code Online (Sandbox Code Playgroud)

以及sqlite连接设置

'sqlite' => [
    'driver' => 'sqlite',
    'database' => ':memory:',
    'prefix' => '',
]
Run Code Online (Sandbox Code Playgroud)

这样,它将使用内存数据库,并且当数据库连接关闭时数据库将不复存在,并且由于您不会打开连接,因此您永远不会打开本地数据库。

您还可以从app.php配置文件中删除数据库服务提供者:

    'Illuminate\Cookie\CookieServiceProvider',
    //'Illuminate\Database\DatabaseServiceProvider',
    'Illuminate\Encryption\EncryptionServiceProvider',
Run Code Online (Sandbox Code Playgroud)

以及 Fluent 和 Eloquent 的外观在同一个文件中:

    'Crypt'     => 'Illuminate\Support\Facades\Crypt',
    //'DB'        => 'Illuminate\Support\Facades\DB',
    //'Eloquent'  => 'Illuminate\Database\Eloquent\Model',
    'Event'     => 'Illuminate\Support\Facades\Event',
Run Code Online (Sandbox Code Playgroud)

这将阻止您连接到本地数据库,甚至无法启动sqlite您刚刚设置的数据库连接。


小智 0

您需要在 app/config/database.php 文件中定义连接,并在使用 laravel 的 DB::connection('connection_name') 运行查询时指定连接。更多信息请点击这里 --> http://laravel.com/docs/4.2/database#accessing-connections