2015-08-14 85 views
3

我正在Linux服务器上使用Laravel 5.1构建项目。 有两个数据库一个MySQL(这里没有问题)和MSSQL(这里有问题)。 关键是,经过很长时间的研究,我最终使用mssql函数(mssql_query,mssql_fetch_object等)获取数据。 我的问题与我如何使用Laravel体系结构中的设计模式构建适配器以及最终构建驱动程序有关。 有什么想法?构建自定义的Laravel数据库适配器

谢谢。

回答

2

Laravel确实支持MS-SQL开箱即用。没有必要写一个适配器。只要配置你的config/database.php中的 'SQLSRV' 连接,然后你有一些选择使用它:

1 - 直接通过DB门面:

$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文档中的整个“架构基础”部分,它们非常有帮助!

+0

嗨拉斐尔,谢谢你的回答。 默认的laravel sqlsrv使用基于驱动程序的PDO功能,仅在Window Server中可用。 http://php.net/manual/en/sqlsrv.requirements.php 这就是为什么我使用mssql函数,而不是使用php5-mssql驱动程序。 我会毫不犹豫地阅读架构基础,为我想要实现的许多想法获得更好的构想。 谢谢。 – juancarloscruzd