说我有网址/product/view/1
,这意味着我的产品控制器类中有方法:
function view($id)
{
// Do something here
}
如果有人去/product/view
?
目前我收到两条错误消息,其中一条说Missing argument 1 for Budget::view()
,另一条说Undefined variable: id
这两条消息都是我期望的,但显然我宁愿提供自己的消息。
答案 0 :(得分:4)
两种方式,
选项一:通过说
为$id
变量提供默认值
function view($id = '')
{
// Do something here and test if it's empty
}
这是传统上用PHP中的函数的可选参数完成的
选项二:您可以使用URI帮助程序(默认情况下自动加载),而不是将URI段作为参数传递给函数。
function view()
{
$id = (int) $this->uri->segment(3);
// Do something here
}
然后你可以测试是否设置了id并从那里开始
答案 1 :(得分:2)
如果您的控制器是产品,并且方法是视图
...
function view ( $id = null ) {
// set graciously failing if $id = null to avoid error
// and make happend what you want
....
}
...
答案 2 :(得分:1)
不了解任何CodeIgniter细节,但您始终可以使用.htaccess
和mod_rewrite
重定向
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/product/view$
RewriteRule ^(.*)$ http://www.example.com/your-error-document [R=301,NC,L]
答案 3 :(得分:1)
function view($id = false)
{
if ($id===false) {
//show error
show_error('your error');
//or redirect
}
// Do something here
}