【发布时间】:2016-10-25 13:27:10
【问题描述】:
我是 CodeIgniter 的新手,我正在尝试一些练习代码。在那,我创建了一个带有 2 个参数的函数,$p1 和 $p2。我的函数也使用默认参数。现在我试图在代码中给出一个参数,在 URL 中给出另一个参数,这里是$p2="Nimishan"。
<?php
class Hello extends CI_Controller{
public function first($p1,$p2="Nimishan"){
echo "This is the first method<br>";
echo "My parameters are : $p1 and $p2";
}
}
?>
我的网址是:
localhost/code/index.php/hello/first/hey
所以输出是
嘿,尼米山
但是当我将默认参数值更改为$p1 时收到警告。
<?php
class Hello extends CI_Controller{
public function first($p1="Hello",$p2){
echo "This is the first method<br>";
echo "My parameters are : $p1 and $p2";
}
}
?>
我尝试了 URL 以通过不同方式获得正确的输出。
例如:localhost/code/index.php/hello/first/nimishan
但我收到警告
Severity: Warning
Message: Missing argument 2 for Hello::first()
Severity: Notice
Message: Undefined variable: p2
我不确定我错过了哪里。
我想要的是通过为第一个参数而不是第二个和正确的 URL 方式提供值来获得正确的输出。
【问题讨论】:
-
您必须使用 codeigniter 中的段来从 url 获取路由的值,您对待控制器并将参数放入其中的方式,这是错误的。使用 $this->uri->segment();内部控制器并从函数中删除参数。 url 内的所有数据都在段内。
-
无关:我在 stackoverflow.com/review/triage/20858659 上看到了您对 EDIT 的投票。错误的选择:这个问题太宽泛了,除了 OP 之外的任何人都没有机会解决这个问题。它应该因为太宽泛而被关闭。请研究分流队列的帮助,并更加小心您的投票。并且:您所做的编辑也是“错误的”。我们不编辑此类帖子,我们关闭投票,如果有的话,我们向提问者发表评论并要求他改善他的低质量输入。
标签: php codeigniter url