Heim > Backend-Entwicklung > PHP-Tutorial > ThinkPHP的后缀操作方法配置 罢工了

ThinkPHP的后缀操作方法配置 罢工了

WBOY
Freigeben: 2016-06-06 20:11:49
Original
1197 Leute haben es durchsucht

我添加了一个方法 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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

给系统关键字的方法添加后缀

<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>
Nach dem Login kopieren
Nach dem Login kopieren

OK我再去打开浏览器
大家思考一下会出现什么情况
对应该是会继续报错
非法操作index
ThinkPHP的后缀操作方法配置  罢工了

但是实际上没有报错非法操作index
而且很正常的运行着
你看前置后置也是正常的???
ThinkPHP的后缀操作方法配置  罢工了
为什么?
怎么和课程有出入
不知道是不是我疏忽了什么
单是我真心仔细检查了都没发现是什么原因
刚入门求解惑

回复内容:

我添加了一个方法 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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

给系统关键字的方法添加后缀

<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>
Nach dem Login kopieren
Nach dem Login kopieren

OK我再去打开浏览器
大家思考一下会出现什么情况
对应该是会继续报错
非法操作index
ThinkPHP的后缀操作方法配置  罢工了

但是实际上没有报错非法操作index
而且很正常的运行着
你看前置后置也是正常的???
ThinkPHP的后缀操作方法配置  罢工了
为什么?
怎么和课程有出入
不知道是不是我疏忽了什么
单是我真心仔细检查了都没发现是什么原因
刚入门求解惑

我想你是不是理解错了:

<code>例如,如果设置:
'ACTION_SUFFIX'=>'Act'
那么访问某个模块的add操作对应读取模块类的操作方法则由原来的add方法变成addAct方法。</code>
Nach dem Login kopieren

意味着你在index后面添加Action和不添加,他都会去找实际控制器里面的index方法,因为入口文件会根据你的方法名称匹配是否存在Action字符串,找不到就会去找这个字符串的名称对应的方法!
这样是避免了特殊命名公用报错的问题

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage