lithium - 我如何执行与锂模型的连接?

标签 lithium

我通读了锂\数据\模型\查询,但没有看到任何连接示例。

最佳答案

有多种方法可以执行与 Lithium 的连接。

  • Lithium 将为您处理已定义关系 ( examples in the manual ) 的连接。
  • 您可以使用 join() 向现有查询对象添加连接。方法(请参阅 API))。
  • 您可以使用键 joins 将一组 Query 对象传递给查找器。 .
  • 您可以使用 Connection->read() 将 SQL 直接传递给连接。 .

  • 其他方法的文档相当齐全,因此我将举一个将 Query 对象传递给查找器的示例。

    $fields = array('id', 'name', 'slug');                                                                                                                                                                                                  
    $joins = array();
    $joins[] = new Query(array(
      'source' => 'client_tests',  
      'constraint' => array('Test.id' => 'client_tests.test_id'),
    ));
    $conditions['client_id'] = $this->data['client_id'];
    $tests = Test::all(array(
       'conditions' => $conditions,
       'fields' => $fields,
       'joins' => $joins
    ));
    
    source是您要加入的表和 constraint是加入条件。 Lithium 将查找表别名为模型的名称,因此在您的约束中使用它。然后,您可以将连接与您想要的任何其他参数一起传递给任何查找器。

    请注意,在撰写本文时,连接(和关系)仅适用于关系数据库,不适用于 MongoDB 的 DBRef 之类的东西。

    更新 :删除已被链接劫持的链接。

    关于lithium - 我如何执行与锂模型的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9391062/

    相关文章:

    mongodb - Lithium mongodb 模型之间的关系

    Mongodb 单一数据库 vs 每个客户端的集合 vs 每个客户端的数据库

    php - 如何使用锂框架构建编辑表单

    php - 如何在模型中使用带有枚举集合列表和更改集合的 Lithium PHP 框架

    php - lithium 弃用 __init() 方法,需要手动调用它

    客户端断开连接后 PHP 终止脚本

    php - 如何在带有锂记录集的 sqlite 或 mysql 中使用 LIKE 条件

    php - Lithium cookies, session 中的所有行

    mysql - 多种锂模型关系

    php - 安装锂 php 框架