mysql - 数据库索引 cakePHP

标签 mysql cakephp cakephp-2.0

我有两个表,即“客户”和“事件”。两者的关系如下:

事件

var $belongsTo = array(
         ...
    'Customer'=>array(
        'className' => 'Customer',
        'foreignKey' => 'customer_id'
    )
    );

客户

var $hasMany = array(
    'Event' => array(
        'className' => 'Event',
        'foreignKey' => 'customer_id',
        'dependent' => false,
    )
);

每条客户记录都包含一个公司 ID 以及当前登录的用户。我想要实现的是获取一天的所有事件,仅与特定公司相关,但这当然行不通,因为事件表不包含公司 ID。也许以下查找调用将有助于更好地理解问题:

$conditions = array('company_id'=>CakeSession::read("Auth.User.company_id"), 'date'=>date("Y-m-d", $tomorrow));
$tomorrowsEvents = $this->find('all', array(
                                'conditions'=>$conditions, 'contain'=>array('User', 'Customer')));

另外,一个客户属于一个公司,一个公司有很多客户,如下:

客户

var $belongsTo = array(
        'Company' => array(
        'className' => 'Company',
        'foreignKey' => 'company_id',
        'dependent' => false,
    ),
);

公司

    var $hasMany = array(
    'User' => array(
        'className' => 'User',
        'foreignKey' => 'company_id',
        'dependent' => false
    ),
    'Customer'=>array(
        'className' => 'Customer',
        'foreignKey' => 'company_id',
        'dependent' => false
    )
);

非常感谢任何帮助。

最佳答案

实际上,我会通过从客户那里执行此查询来“向后”执行此查询,并使用可包含的行为来包含相关的事件:

$this->Customer->find('all', 
     array(
       'conditions' => array(
           'company_id' => CakeSession::read("Auth.User.company_id")
        ), 
       'contain' => array(
             'Event' => array(
                   'conditions' => array(
                         'Event.date' => date("Y-m-d", $tomorrow)
                    )
             )
        )
  ));

关于mysql - 数据库索引 cakePHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22663143/

相关文章:

php - Paypal IPN 在沙盒中有效 在线时无效

mysql - 如何在mysql中获取前3个月到接下来15天的加入日期和员工姓名

java - MySQL Connector/JDBC 线程安全吗?

javascript - 数组格式转JSON格式

javascript - 在 php 变量中分配一个选择的值

facebook-graph-api - 如何将 Facebook SDK 登录与 cakephp 2.x 集成?

java - 通过从其他表中提取数据向表中插入数据

php - 使用 CakePHP 提取 URL 值(参数)

php - CakePHP 2.1 初学者教程?

cakephp - 通过在 CakePHP 上使用 JavaScript 创建表单来避免 CSRF 攻击