用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3417|回复: 7
收起左侧

[视图] 关于view有个问题

[复制链接]
发表于 2012-10-10 18:40:26 | 显示全部楼层 |阅读模式
如果我在controller没有设置一个变量,比如NAME,但我在VIEW中有{NAME},就会出现undefine the $NAME

我以前在SMARTY中好像不会出现这个问题,如果这样感觉有点麻烦,每个还要判断一个isset(),所以有没有什么办法,如果没有定义这个变量在controller,那就显示空。

发表于 2012-10-10 20:57:05 | 显示全部楼层
1.php.ini
把error_reporting的E_NOTICE去掉

2.你的变量来源是哪里?
如果来自controller就需要判断是否存在
 楼主| 发表于 2012-10-10 21:30:12 | 显示全部楼层
我可能在编辑与创建,都使用一个VIEW,那个VIEW一定会写比如{NAME}, 我不想在VIEW中判断,这样感觉很乱,SMARTY就不会出现这个错误。

error_reporting的E_NOTICE去掉 不是一个好方法
发表于 2012-10-11 08:02:45 | 显示全部楼层
在那个变量之前加一个@屏蔽错误
发表于 2012-10-11 09:12:52 | 显示全部楼层
robbie003 发表于 2012-10-10 21:30
我可能在编辑与创建,都使用一个VIEW,那个VIEW一定会写比如{NAME}, 我不想在VIEW中判断,这样感觉很乱,SM ...

写个全局get方法,对问题的变量处理
  1.         
  2. public static function get($array, $key, $default = NULL)
  3.         {
  4.             return isset($array[$key]) ? $array[$key] : $default;
  5.         }
复制代码
发表于 2012-10-11 10:40:13 | 显示全部楼层
在构造函数里加上
error_reporting(0);
 楼主| 发表于 2012-10-11 10:50:17 | 显示全部楼层
你这个get在哪调用? controller还是view

最好的办法就是CI改一下,有谁知道在哪改
发表于 2012-10-12 16:15:43 | 显示全部楼层
你用的CI是什么版本?如果是2.1.*的,可以在index.php中修改的,如下图:
开发的时候  define('ENVIRONMENT', 'development');
上线的时候  可以改为define('ENVIRONMENT', 'production');
TM截图未命名.jpg

本版积分规则