改进默认模板的自动识别 改为根据方法名自动转换为小写+下划线 不受URL影响

This commit is contained in:
thinkphp
2018-02-28 15:00:28 +08:00
parent 8fffb9c5cc
commit 33404d6fca
2 changed files with 22 additions and 3 deletions

View File

@@ -443,6 +443,12 @@ if (!function_exists('view')) {
*/ */
function view($template = '', $vars = [], $replace = [], $code = 200) function view($template = '', $vars = [], $replace = [], $code = 200)
{ {
if ('' === $template) {
$trace = debug_backtrace(false, 2);
$suffix = Config::get('action_suffix');
$action = $suffix ? substr($trace[1]['function'], 0, -strlen($suffix)) : $trace[1]['function'];
$template = Loader::parseName($action);
}
return Response::create($template, 'view', $code)->replace($replace)->assign($vars); return Response::create($template, 'view', $code)->replace($replace)->assign($vars);
} }
} }

View File

@@ -52,7 +52,7 @@ class Controller
*/ */
public function __construct(Request $request = null) public function __construct(Request $request = null)
{ {
$this->view = View::instance(Config::get('template'), Config::get('view_replace_str')); $this->view = View::instance(Config::get('template'), Config::get('view_replace_str'));
$this->request = is_null($request) ? Request::instance() : $request; $this->request = is_null($request) ? Request::instance() : $request;
// 控制器初始化 // 控制器初始化
@@ -117,6 +117,13 @@ class Controller
*/ */
protected function fetch($template = '', $vars = [], $replace = [], $config = []) protected function fetch($template = '', $vars = [], $replace = [], $config = [])
{ {
if ('' === $template) {
$trace = debug_backtrace(false, 2);
$suffix = Config::get('action_suffix');
$action = $suffix ? substr($trace[1]['function'], 0, -strlen($suffix)) : $trace[1]['function'];
$template = Loader::parseName($action);
}
return $this->view->fetch($template, $vars, $replace, $config); return $this->view->fetch($template, $vars, $replace, $config);
} }
@@ -202,9 +209,15 @@ class Controller
} }
// 批量验证 // 批量验证
if ($batch || $this->batchValidate) $v->batch(true); if ($batch || $this->batchValidate) {
$v->batch(true);
}
// 设置错误信息 // 设置错误信息
if (is_array($message)) $v->message($message); if (is_array($message)) {
$v->message($message);
}
// 使用回调验证 // 使用回调验证
if ($callback && is_callable($callback)) { if ($callback && is_callable($callback)) {
call_user_func_array($callback, [$v, &$data]); call_user_func_array($callback, [$v, &$data]);