【问题标题】:Select table from a different PostgreSQL schema in Laravel 4从 Laravel 4 中的不同 PostgreSQL 模式中选择表
【发布时间】:2013-03-24 16:56:12
【问题描述】:

在 Laravel 4 中,如何使用来自另一个模式(database.php 中定义的默认模式除外)的表进行查询?

L4 文档没有显示出任何能够做到这一点的迹象...

【问题讨论】:

  • 嗨,你找到答案了吗?

标签: sql postgresql pdo laravel laravel-4


【解决方案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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-13
    • 2013-12-12
    • 2022-01-17
    • 2010-11-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多