所以我試圖在我的元素視圖中找到一個查找表,我正在通過在我的標記控制器中創建一個輔助函數來實現。CakePHP返回一個不同於指定的表的錯誤
<?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); ?>
然而,返回錯誤
Warning (512): SQL Error: 1054: Unknown column 'Tag.tag_name' in 'field list' [CORE/cake/libs/model/datasources/dbo_source.php, line 684] Query: 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' => ''
));
}
?>
你可以附加你的標籤模型文件嗎? – minaz
使用'requestAction'確實不是好習慣。它有點違背了MVC的概念。你應該真的只是在呈現該視圖的控制器動作中設置gettags函數的結果。就像這樣:'$ this-> set('tags',$ this-> gettags());' –
我會這樣做,但是沒有直接看到cakephp中的元素視圖。所以我只是把這個函數放到了標籤控制器中 – dao