我目前正试图以太多关系来操纵数据库.我不会让它变得复杂,所以这是一个非常简单的例子:
我的桌子(动物):id,类型,标题
我想要做的是有两个模型"大"和"小"."大"模型只会照顾"大"(大象和长颈鹿)类型的动物,"小"模型将照顾类型为"小"(猫和狗)的动物.
有可能吗?
是的,您可以创建名为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
}
}
Run Code Online (Sandbox Code Playgroud)
虽然这是你可以实现这一目标的方式,但似乎最好将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')));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
768 次 |
| 最近记录: |