今天下载了最新的 thinkphp5.0.9看来来!之前一直都是用thinkphp3.2.3!而且tp5都是0.9了 应该没有多大的改动了!!来试试水......
一试就来问题了! 设置空控制器 不能直接访问了! 因为官方手册上面说!
少说废话,多思考.....下面来说根据官方手册+路由手册 整理出口 隐藏模块 直接访问控制方法
TP5.0的路由是针对【应用】而不是【模块】的,所以在模块中配置路由是无效的!
现在配置文件配置:[以下配置可以根据个人爱好]
'empty_controller' => 'Empty', //默认是Error 'controller_suffix' => true, //默认是false,开启控制器就是IndexController 'route_config_file' => ['home'], // 默认是route 设置为home 因为我的模块是home
1.新建一个空控制器 EmptyController
namespace app\home\controller; class EmptyController extends BaseController { public function _empty(){ echo request()->url()."<br/>"; //当前地址 echo request()->module()."-".request()->controller()."-".request()->action(); //模型、控制器、方法 }
2.在/app/home.php
return [ '' => 'home/index/index', //首页 ':controller'=>'home/:controller/:action', //控制器方法 ];
现在你可要访问任何地址:[前提你设置了 伪静态] 那请看官方手册上面说的很Good的
到这里 是可以访问控制器了!但是 我访问后台的时候!如图......还是路由设置
来看看路由手册:
所有只要在 /public/usezan.php [usezan 是模块目录名称] 新建usezan.php
// [ 应用入口文件 ] // 定义应用目录 define('APP_PATH', __DIR__ . '/../app/'); // 加载框架引导文件 require __DIR__ . '/../thinkphp/base.php'; // 绑定当前入口文件到admin模块 \think\Route::bind('usezan'); // 关闭admin模块的路由 \think\App::route(false); // 执行应用 \think\App::run()->send();
现在再来 访问后台地址: 访问请记得带上.php 后缀....不然默认还是走路由路线(ˇˍˇ) !
到这里 配置就完成了!如果你们需求更加强大的!!!手册上面应该都能满足的。 现在测试 访问随机的字符 就可以看到
是可以正常分页的!但是对于参数 过多的情况感觉 不是很满意 例如:
所以根据TP5分页 直接写了一个分页类 ,来看看地址变化:
个人比较喜欢这种分页 无论多复杂的 页面都能根据自己定义!就像Ajax 那就更简单了!!!哈哈哈哈。
还有一点大家要注意的地方就是 图片问题了!如果你操作还是想TP3.2.+ 将图片放在跟目录
那么 你页面输出图片的时候 就会看到!!!图片不显示了!
我们用控制台的方式打开来看看是什么问题呢:
会报错了!而且是找不到模板了....
我们来分析一下 我们设置的路由规则是:
那么相对 路径 /uploads/20160214/1455459632137430.png 它也在路由规则匹配中~~~
解决这种问题 官方已经有了 那就是将静态文件以及图片之类什么的 放在/static/ 目录中:
我们在static目录下新建 uploads文件夹、如果你的linux[注意记得给文件权限 777]
现在我们再次访问图片可以正常显示了!!!
个人观点:在学习新的东西要多看 官方文档之类的!毕竟是设计者......多多少少会让我们少跳坑!更快的掌握TP5的特性、功能!!