Cakephp 如何向add()函数添加一个参数

Cakephp 如何向add()函数添加一个参数,cakephp,Cakephp,当然,我可以添加像add($pid)这样的参数。并像control/add/4一样调用。 但当出现任何验证错误时,它会崩溃并告诉 “ConsultingDetsController::add()缺少参数1” 从何处调用cakePHP default add(),以及如何解决此问题? 谢谢…当您编写函数并希望在URL中传递变量时,您可以这样编写: public function add($pid) { //... 但是-如果这样写,任何时候你试图访问这个函数,你必须有这个变量,否则你会得

当然,我可以添加像add($pid)这样的参数。并像control/add/4一样调用。
但当出现任何验证错误时,它会崩溃并告诉
“ConsultingDetsController::add()缺少参数1” 从何处调用cakePHP default add(),以及如何解决此问题?
谢谢…

当您编写函数并希望在URL中传递变量时,您可以这样编写:

public function add($pid) {
    //...
但是-如果这样写,任何时候你试图访问这个函数,你必须有这个变量,否则你会得到你提到的错误

如果您希望能够访问该函数并有时向其传递一个变量(例如,在提交表单时,不一定需要URL变量),只需设置参数的值即可:

public function add($pid = null) {
这样做将允许您通过
controller/add/4
controller/add
调用该函数,并且不会导致错误

然后,在尝试将$pid用于重要用途之前,请确保您已验证$pid是否有数据:

if(!empty($pid)) {  //or something similar, depending on your data

确保您的URL格式为
http://www.example.com/control/add/4
而非
http://www.example.com/control/add/
,否则它将抛出表单的操作也必须是
control/add/4
,这样当您提交表单时,如果有任何验证错误,它将使用正确的ID重新加载。还考虑使用隐藏字段。