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'))); 
   } 
 
} 


标签:PHP
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号