资讯详情

THINKPHP之控制器_PHP教程

如何添加控制器?

在Lib/Action新增控制器:ProductAction.class.php:

class ProductAction extends Action{

public function index(){

echo 'product模块 , index方法';

}

}

然后通过url访问: 这是一个非常重要的概念:

url调度模式:我们在访问网站时使用不同的方式ur访问方式

tp支持四种访问方式:URL_MODEL控制参数。

1.普通模试:默认支持

www.tp.com/index.php?m=Product&a=index&id=1

m模块名

a动作

2.pathinfo模(tp默认调度模式):

http://www.tp.com/index.php/Product/index/id/1/name/zhangsan

product模块名

index方法名

id是参数

1为值 。。。 一般来说,后面的参数成对出现。以/分隔。

3. rewrite模式,即重写。 用于页面静态化

省略入口文件:

http://www.tp.com/Product/index/id/1/name/zhangsan

设置方法:

1、httpd.conf在配置文件中加载mod_rewrite.so模块

2、AllowOverride None将None改为All (注意不要和 #Options Indexes同时出现,否则无权访问)

3、确保URL_MODEL设置为2

4.将以下内容保存为.htaccess将文件放入入口文件的同级目录

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

4.兼容模式:

如果不支持web服务器不支pathinfo或rewrite但是我们还是想用模式,可以考虑用兼容模式

http://www.tp.com/index.php?s=Product/index/id/1/name/zhangsan

或者:http://www.tp.com/?s=Product/index/id/1/name/zhangsan

在配置文件中,一个URL_MODEL0123分别表示。默认支持,这是怎么回事?

无论哪种模式支持普通模式,在提交表格时都可以看到差异。

路径分隔符:URL_PATHINFO_DEPR' => '-', // PATHINFO在模式下,参数之间的分割符号

http://www.tp.com/?s=Product-index-id-1-name-zhangsan

控制器中的空操?这样可以简化url,利用它的一个特点。

系统找不到指定的执行方法。

将以下方法添加到控制器中:

/*

* $name 表示请求的方法

*/

public function _empty($name){

echo '请求页面无法显示'.$name;

}

5、 空模块

空模块的概念是,当系统找不到指定的模块名称时,系统会尝试定位空模块(EmptyAction),我们可以用这个机制来定制错误的页面URL的优化。

l EmptyAction

MODULE_NAME

现在我们试着要求一个url

http://localhost/tp/index.php/Student/shanghai

因为我们没有系统StudentAction所以这个控制器会报错

我们在项目中创建了一个名称EmptyAction以后,如果系统找不到相应的模块,它会自动定位Action中,如果我们在这个类中再添加一个叫_empty这样,所有来自的方法都可以被屏蔽url的错误

5、 项目分组

在大型项目中,大型项目通常由几个小项目组成。例如,它可能是由

前台项目、后台项目、会员博客、论坛

l config.php

l APP_GROUP_LIST 分组列表

l DEFAULT_GROUP 默认分组

在我们的项目中,始分组:

1)前台项目 Home

2)后台项目 Admin

http://www.bkjia.com/PHPjc/477233.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477233.htmlTechArticle如何添加控制器? 在Lib/Action新增控制器:ProductAction.class.php: ?php class ProductAction extends Action{ public function index(){ echo product模块 , ind...

本技术文章来自互联网。如果您无意侵犯您的权益,请点击此处反馈版权投诉

本文系统来源:php中文网

标签: 0123连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台