大佬教程收集整理的这篇文章主要介绍了命名约定并加入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,请注明来意。