> 백엔드 개발 > PHP 튜토리얼 > ThinkPHP的后缀操作方法配置 罢工了

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

WBOY
풀어 주다: 2016-06-06 20:11:49
원래의
1197명이 탐색했습니다.

我添加了一个方法 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
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>
로그인 후 복사
로그인 후 복사

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
ThinkPHP的后缀操作方法配置  罢工了

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

我想你是不是理解错了:

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

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿