PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了命名约定并加入CakePHP大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

就在几天前,我发现了一个叫做CakePHP的奇迹,所以我对此感到非常满意.
我需要构建一个邮件应用程序,因此我遵循了约定并创建了:@H_403_2@

数据库说明:

用户表< user_id(主键),fname,lname>.

邮件表< mail_id(主键),从(外键到user_id),到(外键到user_id),内容,打开的>.

我的问题:

1)根据约定,外键应称为相关表“ _id”.如果有两个与同一个表相关的外键,我应该怎么称呼这些列.在邮件表中喜欢“从”和“到”.

2)我想做两个表之间的内部联接.
就像是:

select user_id, mail_id 
FROM users
INNER JOIN mails
ON users.user_id =mails.to AND mails.opened=false. 

但是我不知道如何去做.

解决方法:

当您需要对同一张表进行两个关联时,您将需要覆盖认约定.在您的示例中,我将创建2个外键.一个名为sender_id,一个名为收件人_id.然后,您可以像这样将他们加入模型:

<?PHP

class Mail extends AppModel {
    //The Associations below have been created with all possible keys, those that are not needed can be removed
    var $belongsTo = array(
        'UserSender' => array(
            'className' => 'User',
            '@R_607_3451@' => 'sender_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        ),
            'UserRecipient' => array(
            'className' => 'User',
            '@R_607_3451@' => 'recipient_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        ),
    );
}
?>

然后按照您的条件进行操作,如下所示:

<?PHP
    $this->Mail->find(array('conditions'=>array('Mail.opened'=>falsE)));
?>

…并根据发送者和接收者进行过滤,您的情况如下所示:

<?PHP
    $this->Mail->find(array('conditions'=>array('UserSender@L_668_19@me_field'=>$someValue,
                                                'UserRecipient@L_668_19@me_field'=>$somevalue)));
?>

大佬总结

以上是大佬教程为你收集整理的命名约定并加入CakePHP全部内容,希望文章能够帮你解决命名约定并加入CakePHP所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: