Cakephp 中的脚手架允许选择 Parent_id,但烘焙控制器显示一个空的选择框

Posted

技术标签:

【中文标题】Cakephp 中的脚手架允许选择 Parent_id,但烘焙控制器显示一个空的选择框【英文标题】:Scaffolding in Cakephp allows Parent_id to be selected, but baked controllers show an empty select box 【发布时间】:2014-09-25 21:58:38 【问题描述】:

当我使用 Tree 行为并搭建我的控制器时,我的 parent_id 会显示在添加视图的选择框中;然而,当我烘焙我的控制器和视图时,我最终得到了一个空的 parent_id 选择框。我知道这很简单,但我就是想不通。

这是我的控制器:

public function add() 
    if ($this->request->is('post')) 
        $this->Test->create();
        if ($this->Test->save($this->request->data)) 
            $this->Session->setFlash(__('The test has been saved.'));
            return $this->redirect(array('action' => 'index'));
         else 
            $this->Session->setFlash(__('The test could not be saved. Please, try again.'));
        
    
    $parentTests = $this->Test->ParentTest->find('list');
    $this->set(compact('parentTests'));

这是我的模型:

public $belongsTo = array(
    'ParentTest' => array(
        'className' => 'Test',
        'foreignKey' => 'parent_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    )
);

public $hasMany = array(
    'ChildTest' => array(
        'className' => 'Test',
        'foreignKey' => 'parent_id',
        'dependent' => false,
        'conditions' => '',
        'fields' => '',
        'order' => '',
        'limit' => '',
        'offset' => '',
        'exclusive' => '',
        'finderQuery' => '',
        'counterQuery' => ''
    )
);

如果有人能帮我解决这个问题,我将不胜感激。提前谢谢你。

【问题讨论】:

【参考方案1】:

Bake 可能无法正确解决此问题。 必须手动调整,将变量重命名为parents

$parents = $this->Test->ParentTest->find('list');
$this->set(compact('parents'));

【讨论】:

以上是关于Cakephp 中的脚手架允许选择 Parent_id,但烘焙控制器显示一个空的选择框的主要内容,如果未能解决你的问题,请参考以下文章

Cakephp 脚手架,留下还是移除?

选择查询中的CakePHP 3格式日期

CakePHP 从不同视图登录

复选框的 CakePHP 1.3 数据类型

cakephp3中的递归?

Cakephp:使用`saveAssociated()`时如何将`parent_id`保存到基于树的模型中?