form以post提交表單name值為a時出錯:
<input type="text" name="a" class="form-control" />
當(dāng)input 不輸入值 的時候是沒問題的
當(dāng)有值時,會報錯:方法錯誤8吮雁仲!
找到\ThinkPHP\Library\Think\Dispatcher.class.php文件中的getAction方法
```php
/**
* 獲得實(shí)際的操作名稱
*/
static private function getAction($var,$urlCase) {
$action = !empty($_POST[$var]) ?
$_POST[$var] : \\tp框架把post中的a對應(yīng)的值當(dāng)做是action使用
(!empty($_GET[$var])?$_GET[$var]:C('DEFAULT_ACTION'));
unset($_POST[$var],$_GET[$var]);
........
}
并且通過get的方式 也是接受不到a對應(yīng)的值
//Dispatcher.class.php 222 行
// 獲取操作
if(!defined('BIND_ACTION')){
$_GET[$varAction] = array_shift($paths); //將a對應(yīng)的值覆蓋并且在getAction 中將a的值給unset掉了
}
通過對Dispatcher.class.php查讀,在input傳參數(shù)是最要不要用name為 a琐脏、c攒砖、m缸兔、s、addon
//Dispatcher.class.php
/**
* URL映射到控制器
* @access public
* @return void
*/
static public function dispatch() {
$varPath = C('VAR_PATHINFO');
$varAddon = C('VAR_ADDON');
$varModule = C('VAR_MODULE');
$varController = C('VAR_CONTROLLER');
$varAction = C('VAR_ACTION');
$urlCase = C('URL_CASE_INSENSITIVE');
........
}
// ThinkPHP/Conf/convention.php
return array(
.....
/* 系統(tǒng)變量名稱設(shè)置 */
'VAR_MODULE' => 'm', // 默認(rèn)模塊獲取變量
'VAR_ADDON' => 'addon', // 默認(rèn)的插件控制器命名空間變量
'VAR_CONTROLLER' => 'c', // 默認(rèn)控制器獲取變量
'VAR_ACTION' => 'a', // 默認(rèn)操作獲取變量
'VAR_PATHINFO' => 's', // 兼容模式PATHINFO獲取變量例如 ?s=/module/action/id/1 后面的參數(shù)取決于URL_PATHINFO_DEPR
.......
);
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者