用thinkphp写的项目多了,有时候会发现U函数有时候输出的url有些情况含有index.php,有些情况没有。
<form class="m-t" role="form" action="{:U()}" method="post" onsubmit="return ajax_post(this);">
<script type="text/javascript">
function ajax_post(the){
var that = $(the);
var url= $(the).attr('action');
console.log(url);//输出的是:http://hwylw.com/Public/login.html
//而我需要的是:http://hwylw.com/index.php/Public/login.html
</script>
只需要把URL_MODEL设置为1即可!
今天就来好好探究一番U函数。
先看一下跟U相关的配置。
'URL_MODEL' => 1,
// 0 (普通模式);
//1 (PATHINFO 模式);
//2 (REWRITE 模式);
//3 (兼容模式)
//默认为PATHINFO 模式
我们做一个测试,将这四种模式生成的URL放在一起对比。
// 0 (普通模式);
/index.php?m=Admin&c=Login&a=test
//1 (PATHINFO 模式);
/index.php/Admin/Login/test.html
//2 (REWRITE 模式);
/Admin/Login/test.html
//3 (兼容模式)
/index.php?s=/Admin/Login/test.html
这样列出来一起对比,我们就很明显的看出U函数能生成什么的url路径和各种的特点。其中只有重写模式隐藏了index.php。对于U函数要么要明确一点,它只是生成URL字符串的一个工具。