如何从cakephp2链接中保存参数

时间:2017-03-23 01:20:25

标签: cakephp

请知道如何从链接中将pass参数保存到表中。像localhost / cake / user / sell / basic这样的东西。 'basic'是该链接中的参数。如何在操作中检索并保存它。感谢

2 个答案:

答案 0 :(得分:0)

根据您保存到用户表中的假设,它是一条新记录。

<?php 

class UserController extends AppController{

    public function sell($param = 'basic'){

        $this->User->create();
        $data = ['myParam' => $param];
        $this->User->set($data);
        $this->User->save();
        // do something else eg redirect somewhere
    }

}

如果您要更新用户,则需要将user_id包含为第二个参数,并且您的网址看起来像localhost/cake/user/sell/123/basic

class UserController extends AppController{

    public function sell($id, $param = 'basic'){

        $this->User->id = $id;
        $data = ['myParam' => $param];
        $this->User->set($data);
        $this->User->save();
        // do something else eg redirect somewhere
    }

}

另外,cakephp约定是具有多个控制器名称和单个模型名称。因此UserController应为UsersController,这会将您的网址重命名为localhost/cake/users/sell/basic。真正方便地遵循cakephp惯例,以确保您获得最多的蛋糕自动映射等

答案 1 :(得分:0)

使用cakephp请求方法

  Eg: Use pr($this->request->params); 
  It will show all parameter passed in URL.

  Suppose you have make link this
  echo $this->Html->link(__('add event'), array('controller' => 'events', 'action' => 'add', '?' => array('id' => 123, 'name' => 'sudhir')));

  Then inside controller action, just call
  pr($this->request->params);  // it will shows all details.

您还可以使用请求 查询方法

  Inside controller action, just call
   $id = $this->request->query['id'];
   $name = $this->request->query['name'];

然后使用Cakephp 保存方法将其信息存储在数据库中。