使用thinkphp3.2的朋友都知道,默认情况下,运行入口文件index.php时,系统会自动生成一个应用目录(当然还有其他目录文件,此处忽略),应用目录下面,会默认生成Home模块,那这个模块一般都是用于前端业务逻辑的开发,
如果我们需要生成一个Admin模块用于后台应用,我们可以在项目根目录下面定义一个admin.php的入口文件
注意:admin.php文件中定义的内容将会直接关系到后台模板中U()方法的使用,下面来总结一下:
①:
这种写法的好处就是,当你运行admin.php时,会在应用目录下面生成Admin模块(Admin目录,目录下面的内容与Home目录下面的内容是一样的)
如果你在admin.php文件中是这样定义的,那后台模板中U()方法可以这样写:
{:U('Admin/Anli/hangye_edit',array('id'=>$v['id']))}
// 或
{:U('Anli/hangye_edit',array('id'=>$v['id']))}
// 这两种都可以
如果U方法只写一个参数的话,可以这样写:
{:U('Anli/hangye_edit/id/'.$v['id'])}
但需要注意的是:
另外:
不要再把模块给添加上去,因为入口文件已经绑定了模块为Admin
因此,下面写法是错误的
{:U('Admin/Anli/hangye_edit/id/'.$v['id'])}
②:
这种定义方式的话,需要手动在应用目录下面添加Admin模块目录(内容一般与Home目录下面的内容是一样的)
如果是header()来重定向的话
在U方法中的第一个参数中需要把模块的信息不上,例如:
{:U('Admin/Anli/hangye_edit/id/'.$v['id'])}
如果没有Admin,{:U('Anli/hangye_edit/id/'.1v['id'])}这样的话,无法识别当前模块,系统会把Anli当成模块(Anli应该是控制器),报无法加载模块:Anli错误
也可以这样写:
{:U('Admin/Anli/hangye_edit',array('id'=>$v['id']))}
这种写法系统会识别当前模块,所以也可以这样写:
{:U('Anli/hangye_edit',array('id'=>$v['id']))}
上面写法没有参数大小写问题
注意:
U('地址表达式',['参数'],['伪静态后缀'],['显示域名'])
U方法的第三个参数是伪静态后缀,如果你在配置文件中有定义,如:
'TMPL_TEMPLATE_SUFFIX' => '.html', // 默认模板文件后缀
如果没有定义,则按需添加
以上是个人测试结果,如有错误之处,欢迎纠正!