比方说,我有:如何从cakephp中的URL中获取参数到模型?
http://some-domain/application/controller/action/parameter
这在某种程度上是CakePHP的工作。现在我想知道'参数'究竟是什么。但在模型中。如何获得这些信息?
我必须说有一个包含'Next'按钮的公式,我想验证beforeValidate()中的模型输入。但是我必须知道用户在点击提交按钮时在哪个页面上。这个页面是'参数'。
比方说,我有:如何从cakephp中的URL中获取参数到模型?
http://some-domain/application/controller/action/parameter
这在某种程度上是CakePHP的工作。现在我想知道'参数'究竟是什么。但在模型中。如何获得这些信息?
我必须说有一个包含'Next'按钮的公式,我想验证beforeValidate()中的模型输入。但是我必须知道用户在点击提交按钮时在哪个页面上。这个页面是'参数'。
有两种类型的参数在CakePHP中,你已经通过参数和命名参数。传递的参数如您的示例中所示,并将作为url的一部分传递。
http://example.com/controller/action/passed_param
echo $this->params['passed'][0] // 'passed_param'
http://example.com/controller/action/name:param
echo $this->params['named']['name'] // 'param'
我建议在控制器中获取参数并调用与它们通过的模型方法。
如
$this->Model->find('all', array('conditions'=>array('id'=>$this->params['passed'][0])));
至于它是如何工作的,你会想看看你的路由文件。在您的app/config/routes.php
,你会发现所有的路由和部分传递。
标准的蛋糕URL格式通常如下,因为你会在路线见。 array('controller'=>'MyController', 'action'=>'MyAction', 'MyParam');
我似乎无法在关于Params的书中找到特定的页面,但有一个谷歌周围的指南。
模型(MVC设计模式),不应该有任何外部变量的直接访问。正确的方法是将变量传递从控制器或参数查看:
$myModelObj->doSth($getParameter);
这就是实际内部发生我猜:-) – Andre 2010-05-27 13:01:31
Router::getParams()
可从任何地方,并给出
[plugin] =>
[controller] => leads
[action] => step1
[named] => Array()
[pass] => Array()
[url] => Array(
[ext] => html
[url] => someurl/post-1
)
在蛋糕1.2.6,传递的参数是'$这个 - > PARAMS [ '通']'。 – joshuarh 2013-09-11 16:28:58
为什么'找到( '所有')',而不是'找到( '第一')'?希望在搜索ID时只有一个匹配项。 – Blazemonger 2013-09-12 17:57:59