从 Laravel 4 中的不同 PostgreSQL 模式中选择表
Posted
技术标签:
【中文标题】从 Laravel 4 中的不同 PostgreSQL 模式中选择表【英文标题】:Select table from a different PostgreSQL schema in Laravel 4 【发布时间】:2013-03-24 16:56:12 【问题描述】:在 Laravel 4 中,如何使用来自另一个模式(database.php
中定义的默认模式除外)的表进行查询?
L4 文档没有显示出任何能够做到这一点的迹象...
【问题讨论】:
嗨,你找到答案了吗? 【参考方案1】:http://laravel.com/docs/database
在连接数组中定义另一个架构配置
'pgsql' => array(
'driver' => 'pgsql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
),
'newConnection' => array(
'driver' => 'pgsql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
),
然后根据文档切换到它:
$users = DB::connection('foo')->select(...);
【讨论】:
请问如何使用这个:$users = DB::connection('foo')->select(...);
foo 指的是pgsql',
mysql`等吗?
这如何回答访问同一数据库中不同模式的问题?您刚刚说了如何配置多个连接并且都引用相同的架构(公共)。 OP 询问您将如何进行这样的查询:select * from security.user inner join company.person on (...) 他想知道您如何同时访问安全模式和公司模式。跨度>
【参考方案2】:
问题是:如何在查询中使用备用架构?
答案是定义另一个模式,然后选择连接到它。 示例:
$schema_conn = DB::connection('ARRAY_KEY_FOR_OTHER_SCHEMA_CONFIG');
$query = $schema_conn->where('property', 'value')->get();
【讨论】:
以上是关于从 Laravel 4 中的不同 PostgreSQL 模式中选择表的主要内容,如果未能解决你的问题,请参考以下文章
从 Laravel 4 中的不同 PostgreSQL 模式中选择表
Postgres 和 Laravel 如何将列从字符串类型更改为整数?
使用 Laravel Blade 从 Postgres 显示 JSON 数据