ThinkPHP学习笔记
配置ThinkPHP
这里要配置2项,第1个市笔记2里提到的,去掉/index.php/的操作;第2个配置是为了给数据库映射做准备。
配置1:去掉URL里面的index.php
要去掉URL里的入口文件index.php,使URL类似这样的形式http://127.0.0.1/Index/index
1.打开Myapp/Conf/config.php文件,在配置的数组中添加一行:
'URL_MODEL'=>2,
2.在入口文件所在的同级目录下,新建一个.htaccess文件,内容是
.c>
RewriteEngineon
RewriteCond%{REQUEST_FILENAME}!-d
RewriteCond%{REQUEST_FILENAME}!-f
RewriteRule^(.*)$index.php/$1[QSA,PT,L]
配置2:数据库映射
打开/Myapp/Conf/config.php文件,加入下列内容
'APP_DEBUG'=>true,//开启调试模式
'DB_TYPE'=>'mysql',//数据库类型
'DB_HOST'=>'localhost',//数据库服务器地址
'DB_NAME'=>'test',//数据库名称
'DB_USER'=>'root',//数据库用户名
'DB_PWD'=>'',//数据库密码
'DB_PORT'=>'3306',//数据库端口
'DB_PREFIX'=>'think_',//数据表前缀
很有趣的是最后一项,'DB_PREFIX'=>'think_',//数据表前缀这个框架有个约定俗成的东西,在配置文件中指定好数据表前缀这个属性后,在做数据访问处理时,调用内置的数据访问函数,传数据表前缀后面的名字的话。就会自动做数据映射操作。
比如说在数据库test中,有个名为think_demo和think_test的数据表,通过$form=D('Demo')->findall();这种形式,可以直接获取think_demo中的所有数据,同样可以通过$form=D('Test')->findall();的形式获取think_test表中所有的数据。感觉很方便!
4.小试牛角:
把数据库demo中think_demo中的所有数据显示在网页上
首先确定一下,我的MySQL数据库中以建立了名为test的库和think_demo的表,并且里面已经写入了数据。
打开自动生成好的名为IndexAction.class.php的文件(LibAction),新建个名为show的方法
publicfunctionshow()
{
//设置字符集,防止出现乱码
header("Content-Type:text/html;charset=utf-8");
//获取表内所有数据
$form=D('Demo')->findall();
dump($form);
exit;
}
然后保存,打开浏览器输入http://127.0.0.1/myapp2/Index/show就能看到结果了。
这里要顺便提一下:
1.为什么要在IndexAction.class.php里写,如果我想区分应用可不可以写在别的地方,怎么做?
写在IndexAction.class.php是便于方便,因为这个是自动生成好的文件,一些其它的东西都是生成好的,这么做是为了便于演示。
如果想写在别的地方,方便的方法,把IndexAction.class.php拷贝,然后复制到同目录下(Lib/Action)。按照标准命名:名字+Action.class.php,然后就噢了。比如ShowAciton.class.php->访问:http://127.0.0.1/myapp2/Show/show
2.浏览器入力的时候不区分大小写,也就是说Index/show和index/show是一样的。