所以我试图在我的元素视图中找到一个查找表,我正在通过在我的标签控制器中创建一个辅助函数来做到这一点。
<?php
class TagsController extends AppController {
var $name = 'Tags';
function gettags(){
if (!empty($this->params['requested'])) {
return $this->Tag->find('list', array('fields'=>'Tag.tag_name'));
}
return false;
}
}
然后在我看来,我打电话给
<? $tags = $this->requestAction('/tags/gettags'); debug($tags); ?>
但是,它会返回错误
警告(512):SQL错误:1054:'字段列表'中的未知列'Tag.tag_name'[CORE / cake / libs / model / datasources / dbo_source.php,第684行] 查询:SELECT
Tag
。id
,Tag
。tag_name
FROMusers
ASTag
WHERE 1 = 1
这意味着它认为我的标签表实际上是用户。这在标签视图中不会发生。任何人都对我做错了什么有任何想法?这些表格与其他表格无关。
我的标签模型是:
<?php
class Tag extends AppModel {
var $name = 'Tag';
var $hasMany = array(
'BrandTag' => array(
'className' => 'BrandTag',
'foreignKey' => 'tag_id',
'dependent' => true,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
));
}
?>
答案 0 :(得分:1)
这样的事情应该有效:
$this->getModel('Tag')->find('list', array('fields'=>'Tag.tag_name');
如上所述,您不应该从这样的视图中检索,这不是很好的MVC实践。
如果多个控制器将检索Tag代码,您应该考虑创建一个这些控制器可以根据需要加载的组件。
答案 1 :(得分:0)
Dao可能值得进入app / tmp / cache文件夹并删除模型文件夹中的文件。您可能已经缓存了一个腐败的模型。