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)
但我不确定这是否是正确的方法.这感觉就像一个解决方案,而不是一个实际的解决方案.
我会做以下事情:
'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