在url中包含id以传递给另一个模型

时间:2012-06-14 15:41:03

标签: cakephp

我与Product hasmany Page有模特关系。当我添加新产品然后转到视图时,我可以向该产品添加新的产品页面。但是,单击该链接不会将当前产品ID传递给prodpages / add页面。我希望这样做,以便当您去添加prodpage时,已根据您正在查看的先前产品选择了相关的产品ID。

我认为归结为在产品视图中编辑链接并在prodpages / add /之后传递id以追加。那是对的吗?这是:

<?php echo $this->Html->link(__('New Prodpage'), array('controller' => 'prodpages', 'action' => 'add'));?> </li>

如何将产品ID包括在内?

当谈到Prodpages控制器时......这是我到目前为止添加功能的内容..

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

这对控制器有用吗?

1 个答案:

答案 0 :(得分:2)

是的,只需将其添加到您的链接

即可
echo $this->Html->link(__('New Prodpage'), array(
  'controller' => 'prodpages', 
  'action' => 'add',
  $product_id
));

您遗漏了更多视图,但这假设您的视图有变量$product_id