【问题标题】:Build custom Laravel database adapter [closed]构建自定义 Laravel 数据库适配器 [关闭]
【发布时间】:2015-08-14 17:18:54
【问题描述】:
我正在 Linux 服务器上使用 Laravel 5.1 构建一个项目。
有两个数据库一个 MySQL(这里没问题)和 MSSQL(这里有问题)。
关键是,经过很长时间的研究,我终于使用 mssql 函数(如 mssql_query、mssql_fetch_object 等)获取数据。
我的问题与如何使用 Laravel 架构中的设计模式构建适配器并最终构建驱动程序有关。
有什么想法吗?
谢谢。
【问题讨论】:
标签:
php
sql-server
laravel-5.1
【解决方案1】:
Laravel 支持开箱即用的 MS-SQL。无需编写适配器。只需在您的 config/database.php 中配置“sqlsrv”连接,然后您就有一些使用它的选项:
1 - 直接通过 DB Facade:
$collection = DB::connection('sqlsrv')->select(...);
$collection = DB::connection('mysql')->select(...);
2 - 设置模型的连接属性:
class Foo extends Model {
protected $connection = 'sqlsrv';
...
}
3 - 在运行时更改模型的连接:
$foo = new Foo;
$foo->setConnection('mysql');
$foo->bar = 'baz';
$foo->save();
更多信息请参考Laravel's Database Docs。
但是,如果由于某种原因仍需要编写适配器,正确的做法是编写Service Provider。看看MongoDB Connector 的实现作为一个很好的参考。另外,我强烈建议您阅读 Laravel 文档中的整个“架构基础”部分,它们真的很有帮助!