我添加了一个方法 list
<code><?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller {//类的名称 继承制 系统的核心累 Controller public function _before_index(){//定义前置操作 echo "index.before<br />"; } public function index(){//index()方法 public // echo '<br>Hello Think PHP'; // $config=C('');//读取全部配置项 // dump($config);//dump()是ThinkPHP的函数用来打印变量的 echo "index<br>"; } public function _after_index(){//定义后置操作 echo "index.after<br>"; } public function list(){//注意系统关键字会报错 echo "list"; } }</code>
OK报错了
然后去配置后缀
<code><?php return array( //'配置项'=>'配置值' /* 数据库设置 */ 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 'jike', // 数据库名 'DB_USER' => 'user', // 用户名 'DB_PWD' => '123', // 密码 'DB_PORT' => '3306', // 端口 'DB_PREFIX' => 'jikexueyuan', // 数据库表前缀 'LOAD_EXT_CONFIG' => 'user,upload', /* 应用设定 */ 'ACTION_SUFFIX' => 'Action', // 操作方法后缀 );</code>
给系统关键字的方法添加后缀
<code><?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function _before_index(){ echo "index.before<br />"; } public function index(){ // $config=C(''); // dump($config); echo "index<br>"; } public function _after_index(){ echo "index.after<br>"; } public function listAction(){ echo "list"; } }</code>
OK我再去打开浏览器
大家思考一下会出现什么情况
对应该是会继续报错
非法操作index
但是实际上没有报错非法操作index
而且很正常的运行着
你看前置后置也是正常的???
为什么?
怎么和课程有出入
不知道是不是我疏忽了什么
单是我真心仔细检查了都没发现是什么原因
刚入门求解惑
我添加了一个方法 list
<code><?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller {//类的名称 继承制 系统的核心累 Controller public function _before_index(){//定义前置操作 echo "index.before<br />"; } public function index(){//index()方法 public // echo '<br>Hello Think PHP'; // $config=C('');//读取全部配置项 // dump($config);//dump()是ThinkPHP的函数用来打印变量的 echo "index<br>"; } public function _after_index(){//定义后置操作 echo "index.after<br>"; } public function list(){//注意系统关键字会报错 echo "list"; } }</code>
OK报错了
然后去配置后缀
<code><?php return array( //'配置项'=>'配置值' /* 数据库设置 */ 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 'jike', // 数据库名 'DB_USER' => 'user', // 用户名 'DB_PWD' => '123', // 密码 'DB_PORT' => '3306', // 端口 'DB_PREFIX' => 'jikexueyuan', // 数据库表前缀 'LOAD_EXT_CONFIG' => 'user,upload', /* 应用设定 */ 'ACTION_SUFFIX' => 'Action', // 操作方法后缀 );</code>
给系统关键字的方法添加后缀
<code><?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function _before_index(){ echo "index.before<br />"; } public function index(){ // $config=C(''); // dump($config); echo "index<br>"; } public function _after_index(){ echo "index.after<br>"; } public function listAction(){ echo "list"; } }</code>
OK我再去打开浏览器
大家思考一下会出现什么情况
对应该是会继续报错
非法操作index
但是实际上没有报错非法操作index
而且很正常的运行着
你看前置后置也是正常的???
为什么?
怎么和课程有出入
不知道是不是我疏忽了什么
单是我真心仔细检查了都没发现是什么原因
刚入门求解惑
我想你是不是理解错了:
<code>例如,如果设置: 'ACTION_SUFFIX'=>'Act' 那么访问某个模块的add操作对应读取模块类的操作方法则由原来的add方法变成addAct方法。</code>
意味着你在index后面添加Action和不添加,他都会去找实际控制器里面的index方法,因为入口文件会根据你的方法名称匹配是否存在Action字符串,找不到就会去找这个字符串的名称对应的方法!
这样是避免了特殊命名公用报错的问题