我遇到了TreeBehaviour :: generateTreeList()与我的蛋糕2.3的一些问题;
我想在Element中使用此函数生成的List。 所以Element使用$ this-> requestAction();并且该函数返回$ treelist。 但是我在嵌入元素时遇到错误:
错误:SQLSTATE [42000]:语法错误或访问冲突:1064您 您的SQL语法有错误;检查对应的手册 您的MySQL服务器版本,以便在附近使用正确的语法 ' generateTreeList'在第1行
SQL查询:generateTreeList
注意:如果要自定义此错误消息,请创建 应用\视图\错误\ pdo_error.ctp
堆栈跟踪
CORE \ Cake \ Model \ Datasource \ DboSource.php第460行→ PDOStatement->执行(数组)CORE \ Cake \ Model \ Datasource \ DboSource.php 第426行→DboSource-> _execute(字符串,数组) CORE \ Cake \ Model \ Datasource \ DboSource.php第666行→ DboSource->执行(字符串,数组,数组) CORE \ Cake \ Model \ Datasource \ DboSource.php第611行→ DboSource-> fetchAll(字符串,数组,数组)CORE \ Cake \ Model \ Model.php 799行→DboSource->查询(字符串,数组,AppModel) APP \ Controller \ CategoriesController.php第14行→ 模型 - > __调用(字符串,数组) APP \ Controller \ CategoriesController.php第14行→ AppModel-> generateTreeList()[内部函数]→ CategoriesController->树() CORE \ Cake \ Controller \ Controller.php第486行→ ReflectionMethod-> invokeArgs(CategoriesController,array) CORE \ Cake \ Routing \ Dispatcher.php第187行→ Controller-> invokeAction(CakeRequest)CORE \ Cake \ Routing \ Dispatcher.php 第162行→Dispatcher-> _invoke(CategoriesController, CakeRequest,CakeResponse)CORE \ Cake \ Core \ Object.php第104行→ Dispatcher-> dispatch(CakeRequest,CakeResponse,array) APP \ View \ Elements \ categorieselement.ctp第4行→ Object-> requestAction(string)CORE \ Cake \ View \ View.php第945行→ include(string)CORE \ Cake \ View \ View.php第907行→ View-> _evaluate(string,array)CORE \ Cake \ View \ View.php第1208行→ View-> _render(string,array)CORE \ Cake \ View \ View.php第414行→ View-> _renderElement(string,array,array) APP \ View \ Posts \ view.ctp第197行→View->元素(字符串) CORE \ Cake \ View \ View.php第945行→include(字符串) CORE \ Cake \ View \ View.php第907行→View-> _evaluate(string,array) CORE \ Cake \ View \ View.php第471行→View-> _render(string) CORE \ Cake \ Controller \ Controller.php第948行→View-> render(null, null)CORE \ Cake \ Routing \ Dispatcher.php第194行→Controller-> render()
关于功能和一切,我已经完成了100次非常接近手册的测试。我检查了$ actsAs正确拼写。 如果我不使用generateTreeList()但只是找到(' list')我会按预期输出。
我的错在哪里? TreeBehaviour不能与Elements一起使用吗?
感谢您的帮助。
请求后更新"同时显示您的相关代码"
帖子/ view.ctp:
...
echo '<hr><br><h3>Other Categories</h3>'; echo
$this->element('categorieselement');
...
元素/ categorieselement.ctp: (我现在没有比调试功能更多地打印结果。首先结果应该可行,而不是我关心显示。)
<?php
$trees = $this->requestAction('/categories/tree');
debug($trees);
?>
CategoriesController: 只是添加:即使我向generateTreeList-Function添加了更多选项,错误也保持不变。 如果我替换&#34; generateTreeList();&#34; by&#34; find();&#34;我在帖子/视图中显示结果而不是错误。所以元素和返回的$ data正在运行。
class CategoriesController extends AppController {
public function beforeFilter() {
parent::beforeFilter();
}
public function tree() {
$data = $this->Category->generateTreeList();
return $data;
}
}
类别模型:
class Category extends AppModel {
public $actsAs = array('Tree');
}
答案 0 :(得分:0)
请尝试以下链接
答案 1 :(得分:-1)
@Burzum解决了它(见评论) 他诊断出,Tree-Behavior不会被加载,我应该检查它。
我将此代码添加到控制器的功能树中,为100%shure:
if($this->Category->Behaviors->loaded('Tree') != true){
$this->Category->Behaviors->load('Tree');
}