0

我在数据库中有两个表,cards并且comments. 我已经启动并运行了我的 CakePHP 应用程序。当卡片 view.ctp .. 相关评论出现在页面底部时。

我想单击添加新评论,但专门为当前卡片添加它,例如预填充卡片字段以显示当前类别。

这是我目前的观点新评论链接:

<?php

echo $this->Html->link(__('New comment'), array('controller' => 'comments','action' => 'add'));

?>

这是我的添加评论控制器:

public function add() {
    if ($this->request->is('post')) {
        $this->Comment->create();
        if ($this->Comment->save($this->request->data)) {
            $this->Session->setFlash(__('The comment has been saved'));
            $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The comment could not be saved. Please, try again.'));
        }
    }
    $cards = $this->Comment->Card->find('list');
    $this->set(compact('cards'));
}

如何将卡片设置为当前卡片以进行新添加的评论?

我还希望能够添加新评论,但卡片空白.. 准备好让用户从列表中选择。

4

1 回答 1

0

您可以将 cartId 附加到视图页面上的链接:

array(..., 'action'=>'add', $cartId)

然后你可以这样检索它:

public function add($cartId = null) {
    //...
    if (isPost) {
        //
    } else {
        $this->request->data['Comment']['cart_id'] = $cartId;
    }
    //...
}

这样,cartId 将填充 GET 上的选择框(在 POST 上,您希望使用发布的参数来确保表单在验证错误的情况下确实记住其发布的值)

于 2012-05-18T08:40:53.827 回答