我正在创建一个应用程序,它从许多不同的数据库中读取信息,但实际上没有自己的数据库,因为在任何地方都没有正在编写的信息。
基本上,用户选择一个记录和一个类型,应用程序将根据他们的选择生成一个.pdf文件。我在app/config/database.php中定义了多个连接,但默认情况下我不想连接到它们中的任何一个。有没有办法告诉Laravel不要连接数据库?我尝试过一些东西(都是在app/config/database.php中的),首先是:
'default' => NULL,
// and
//'default' => '',两人都返回:
未定义索引:驱动程序
我也试过:
'default' => 'none',
'connections' => array(
'none' => array(
'driver' => '',
'host' => '',
...
),
),这反过来又返回:
不支持的驱动[] 不支持的host[] ..。
最后,设置'default' => '',返回:
数据库[]未配置。
我找到了使用Laravel模型的方法,没有数据库连接,但实际上没有Laravel本身。
编辑
将连接设置为现有的mysql连接,而不选择数据库“有效”:
'default' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => '',
'username' => '****',
'password' => '****',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),但我不确定这是不是正确的方法。这感觉像是一个解决方案,而不是一个实际的解决方案。
发布于 2015-04-26 15:08:24
我要做以下几点:
'driver' => 'sqlite',以及sqlite连接设置
'sqlite' => [
'driver' => 'sqlite',
'database' => ':memory:',
'prefix' => '',
]这样,它将使用一个内存数据库,当数据库连接关闭时,数据库将停止存在,而且由于您不会打开一个连接,所以您永远不会打开一个本地数据库。
还可以从app.php配置文件中删除数据库服务提供程序:
'Illuminate\Cookie\CookieServiceProvider',
//'Illuminate\Database\DatabaseServiceProvider',
'Illuminate\Encryption\EncryptionServiceProvider',在同一个文件中,正面流畅而又雄辩:
'Crypt' => 'Illuminate\Support\Facades\Crypt',
//'DB' => 'Illuminate\Support\Facades\DB',
//'Eloquent' => 'Illuminate\Database\Eloquent\Model',
'Event' => 'Illuminate\Support\Facades\Event',这将阻止您连接到本地数据库,甚至无法启动您刚刚设置的sqlite数据库连接。
发布于 2015-04-24 13:21:58
您需要在app/config/database.php文件中定义连接,并在使用laravel的DB:: connection ('connection_name')运行查询时指定连接。这里有更多信息-> http://laravel.com/docs/4.2/database#accessing-connections
发布于 2015-04-24 21:42:23
只需在数据库配置中将db驱动程序定义为“sqlite”即可。
'default' => 'sqlite',只要您没有更改默认sqlite部分中的任何内容,所有这些都应该可以工作。您不一定要使用数据库,但它将减少您收到的那些错误。
如果您由于任何原因更改了默认sqlite,您可以按照以下步骤配置sqlite。
'sqlite' => array(
'driver' => 'sqlite',
'database' => __DIR__.'/../database/production.sqlite',
'prefix' => '',
),此外,如果这个'production.sqlite‘文件还没有存在,请确保它存在。您可以通过命令行轻松地做到这一点:
touch app/database/production.sqlitehttps://stackoverflow.com/questions/29828429
复制相似问题