cakephp之cakephp中单个表上的许多模型
52php
阅读:37
2024-10-01 17:34:08
评论:0
我目前正在尝试用太多的方式操作数据库 关系。我不会让你觉得复杂,所以这是一个非常 简化示例:
我的 table (动物): id,类型,标题
- 1,大,大象
- 2,大,长颈鹿
- 3,小,猫
- 4,小,狗
我想做的是有两个模型“大”和“小”。 “大”模型只会处理类型为“大”的动物(大象 和长颈鹿), 和“小”模型将照顾类型为“小”的动物(猫和 狗)。
有可能吗?
请您参考如下方法:
是的,您可以创建名为 BigAnimal 的模型,然后定义 $useTable = 'animals';然后定义 beforeFind 和 beforeSave 每次都将类型设置为“大”。然后您可以对 SmallAnimal 模型执行相同的操作。这是一个例子
class BigAnimal extends AppModel {
var $useTable = 'animals';
function beforeFind($queryData) {
// set type to big here
}
function beforeSave() {
// set type to big here
}
}
虽然这是您可以实现此目的的方式,但似乎最好保持 1 对 1 模型到桌面。然后您可以添加必要的函数来查询来自同一模型的大动物和小动物。它使代码更简洁。所以像这样:
class Animal extends AppModel {
function findBigAnimals() {
return $this->find('all', array('conditions' => array('type' => 'big')));
}
function findSmallAnimals() {
return $this->find('all', array('conditions' => array('type' => 'small')));
}
}
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。