将参数从url传递到cakephp

将参数从url传递到cakephp,cakephp,Cakephp,我需要将参数从URL发送到cakephp控制器。我有两个参数“ufrom”和“uto”的消息表。在控制器中,我想将这些值保存在消息表中 我在URL中输入: http://localhost/ar/messages/add?ufrom=9&uto=3 在MessagesController中,我具有以下功能: public function add() { if(($this->request->query['uto'])and($this->request->

我需要将参数从URL发送到cakephp控制器。我有两个参数“ufrom”和“uto”的消息表。在控制器中,我想将这些值保存在消息表中

我在URL中输入:

http://localhost/ar/messages/add?ufrom=9&uto=3
在MessagesController中,我具有以下功能:

public function add() {

if(($this->request->query['uto'])and($this->request->query['ufrom'])){
        $this->Message->create();
        if ($this->Message->save($this->request->data)) {
            $this->set('addMessage',TRUE);
            $this->set('ufrom',$this->request->query['ufrom']);
            $this->set('uto',$this->request->query['uto']);
            $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The message could not be saved. Please, try again.'));
        }

        $targets = $this->Message->Target->find('list');
        $this->set(compact('targets'));
}
else{
    $this->set('error',true);
}
}

在add.ctp中,我有:

<?php
if(isset($error)){
  echo('error');
}
else{
  echo json_encode($ufrom);
  echo json_encode($uto);
  echo json_encode($addMessage);
}
?>

数据库中没有存储任何内容。我是cakephp的新手。请帮助。

在这里,我可以建议您使用如下参数

http://www.example.com/tester/retrieve_test/good/1/accepted/active
echo $this->params['url']['id'];
echo $this->params['url']['status'];
但是如果你需要这样使用

http://www.example.com/tester/retrieve_test?status=200&id=1yOhjvRQBgY
您可以得到如下所示的值

http://www.example.com/tester/retrieve_test/good/1/accepted/active
echo $this->params['url']['id'];
echo $this->params['url']['status'];
在你的情况下

echo $this->params['url']['uto'];
echo $this->params['url']['ufrom'];

在这里,我可以建议您使用如下参数

http://www.example.com/tester/retrieve_test/good/1/accepted/active
echo $this->params['url']['id'];
echo $this->params['url']['status'];
但是如果你需要这样使用

http://www.example.com/tester/retrieve_test?status=200&id=1yOhjvRQBgY
您可以得到如下所示的值

http://www.example.com/tester/retrieve_test/good/1/accepted/active
echo $this->params['url']['id'];
echo $this->params['url']['status'];
在你的情况下

echo $this->params['url']['uto'];
echo $this->params['url']['ufrom'];

将参数传递给控制器操作的最简单方法是将参数作为参数传递给操作,如下所示:

  public function add($ufrom,$uto)
您的URL应该如下所示:

http://localhost/ar/messages/add/9/3
其次,如果数据来自URL,您不会使用此->请求->数据,只需:

$message = array("Message"=>array("ufrom"=>$ufrom,"uto"=>$uto));
$this->Message->save($message);

将参数传递给控制器操作的最简单方法是将参数作为参数传递给操作,如下所示:

  public function add($ufrom,$uto)
您的URL应该如下所示:

http://localhost/ar/messages/add/9/3
其次,如果数据来自URL,您不会使用此->请求->数据,只需:

$message = array("Message"=>array("ufrom"=>$ufrom,"uto"=>$uto));
$this->Message->save($message);

感谢您的描述,但我的数据尚未存储在数据库中。请参考此感谢您的描述,但我的数据尚未存储在数据库中。请参考这个