CodeIgniter 控制器方法参数问题
Posted
技术标签:
【中文标题】CodeIgniter 控制器方法参数问题【英文标题】:CodeIgniter Controller Method Parameters Issue 【发布时间】:2013-03-10 12:51:32 【问题描述】:我使用的是codeigniter 2.1,我定义了一个函数如下。
public function reset($email, $hash)
根据MVC architecture
和OOPS
的概念,如果我没有通过url
中的parameters
,函数就无法执行。但是在codeigniter这个函数得到执行,那么我该如何克服呢?请帮助我找到解决方案。
【问题讨论】:
你是怎么调用reset方法的,我的意思是你能提供url吗? CI 控制器函数也是 php 函数,因此它的行为与 php 函数相同。所以函数被称为 php functoin 的默认行为 你应该透露一些你的 URL 并解释它是如何被执行的。 【参考方案1】:你只需要像这样定义空参数:
public function reset($email = null, $hash = null)
如果你调用函数
(controller name)/reset/mail@mail.com/dsadasda
比$email = mail@mail.com
& $hash = dsadasda
如果你发挥作用
(controller name)/reset
$email
和 $hash
将为空。
你也可以像这样声明默认参数。
public function reset($email = mail@mail.com, $hash = dsadasdas)
希望我是清楚的。
【讨论】:
【参考方案2】:如果要执行带参数或不带参数的函数 您可以为其设置默认值。
public function reset($email = '', $hash = '')
这种方式在没有参数的情况下仍然可以执行。 您可以对代码使用条件
public function reset($email = '', $hash = '')
if(!empty($email) AND !empty($hash))
//your code here
【讨论】:
以上是关于CodeIgniter 控制器方法参数问题的主要内容,如果未能解决你的问题,请参考以下文章