0

我如何将我的表单传递的 id 维护到另一个表单?例如,我有http://192.168.6.253/computers/brands/table/4它显示来自品牌的所有记录属于条件计算机 ID = 4 的计算机。现在我有 add() 引导我到http://192.168.6.253/computers/brands/add.

我现在的问题是我想保留computer_id = 4,这样当我添加一个新品牌时,它将把它保存到数据库中的Brand.computer_id。所以我http://192.168.6.253/computers/brands/add/4也想要类似的东西。

在这里我如何在我的视图中调用 add()

echo $this->Html->link('Add Brands Here', array(
        'controller' => 'brands',
        'action' => 'add'))
);

在这里我如何在我的电脑视图中调用我的餐桌品牌

echo $this->Html->link('P',array('action' => '../brands/table', $computer['Computer']['id']));

还有我的品牌 add() 和 table() 控制器

public function table($id = null){
            if (!$id) {
                throw new NotFoundException(__('Invalid post'));
            }

            $this->paginate = array(
            'conditions' => array('Brand.computer_id' => $id),
            'limit' => 10
            );
            $data = $this->paginate('Brand');
            $this->set('brands', $data);
        }

        public function add() {

            if ($this->request->is('post')) {
                $this->Brand->create();
                if ($this->Brand->save($this->request->data)) {
                    $this->Session->setFlash(__('Your post has been saved.'));
                    $this->redirect(array('action' => 'index'));
                } else {
                    $this->Session->setFlash(__('Unable to add your post.'));
                }
            }
        }
4

1 回答 1

2
echo $this->Html->link('Add Brands Here'
    , array(
      'controller' => 'brands'
      ,  'action' => 'add'
      , 4 // or whatever variable, maybe $computer['Computer']['id'] ?
    )
);

...应该做的伎俩。

它与您已经用来制作其他链接的片段完全一样。echo $this->Html->link('P',array('action' => '../brands/table', $computer['Computer']['id']));

在最后制作这些数字“id”时要记住的关键点是简单地将一个非索引项添加到数组中。CakePHP 会一直坚持到底。

当然,我还必须警告您,从 REST 的角度来看,像这样在末尾添加“4”并没有真正的意义。也许你最好使用命名参数,像这样......

echo $this->Html->link('Add Brands Here'
    , array(
      'controller' => 'brands'
      ,  'action' => 'add'
      ,  'computer_id' => 4 // or whatever variable, maybe $computer['Computer']['id'] ?
    )
);

...或查询字符串参数...

echo $this->Html->link('Add Brands Here'
    , array(
      'controller' => 'brands'
      ,  'action' => 'add'
      ,  '?' => array('computer_id' => 4) // or whatever variable, maybe $computer['Computer']['id'] ?
    )
);

更深入地阅读http://book.cakephp.org/2.0/en/development/routing.html

于 2013-08-01T02:59:43.463 回答