模板渲染支持直接渲染根路径下面的模板 例如 $this->fetch('/name');

This commit is contained in:
thinkphp
2016-12-19 15:18:51 +08:00
parent c197b1f040
commit 573eefba3d
3 changed files with 25 additions and 20 deletions

View File

@@ -1067,6 +1067,8 @@ class Template
} }
if (0 !== strpos($template, '/')) { if (0 !== strpos($template, '/')) {
$template = str_replace(['/', ':'], $this->config['view_depr'], $template); $template = str_replace(['/', ':'], $this->config['view_depr'], $template);
} else {
$template = str_replace(['/', ':'], $this->config['view_depr'], substr($template, 1));
} }
if ($this->config['view_base']) { if ($this->config['view_base']) {
$module = isset($module) ? $module : Request::instance()->module(); $module = isset($module) ? $module : Request::instance()->module();

View File

@@ -127,17 +127,18 @@ class Php
$depr = $this->config['view_depr']; $depr = $this->config['view_depr'];
if (0 !== strpos($template, '/')) { if (0 !== strpos($template, '/')) {
$template = str_replace(['/', ':'], $depr, $template); $template = str_replace(['/', ':'], $depr, $template);
} $controller = Loader::parseName($request->controller());
if ($controller) {
$controller = Loader::parseName($request->controller()); if ('' == $template) {
if ($controller) { // 如果模板文件名为空 按照默认规则定位
if ('' == $template) { $template = str_replace('.', DS, $controller) . $depr . $request->action();
// 如果模板文件名为空 按照默认规则定位 } elseif (false === strpos($template, $depr)) {
$template = str_replace('.', DS, $controller) . $depr . $request->action(); $template = str_replace('.', DS, $controller) . $depr . $template;
} elseif (false === strpos($template, $depr)) { }
$template = str_replace('.', DS, $controller) . $depr . $template;
} }
} else {
$template = str_replace(['/', ':'], $depr, substr($template, 1));
} }
return $path . ltrim($template, '/') . '.' . ltrim($this->config['view_suffix'], '.'); return $path . ltrim($template, '/') . '.' . ltrim($this->config['view_suffix'], '.');
} }

View File

@@ -120,18 +120,20 @@ class Think
$path = isset($module) ? APP_PATH . $module . DS . 'view' . DS : $this->config['view_path']; $path = isset($module) ? APP_PATH . $module . DS . 'view' . DS : $this->config['view_path'];
} }
$controller = Loader::parseName($request->controller()); $depr = $this->config['view_depr'];
$depr = $this->config['view_depr'];
if (0 !== strpos($template, '/')) { if (0 !== strpos($template, '/')) {
$template = str_replace(['/', ':'], $depr, $template); $template = str_replace(['/', ':'], $depr, $template);
} $controller = Loader::parseName($request->controller());
if ($controller) { if ($controller) {
if ('' == $template) { if ('' == $template) {
// 如果模板文件名为空 按照默认规则定位 // 如果模板文件名为空 按照默认规则定位
$template = str_replace('.', DS, $controller) . $depr . $request->action(); $template = str_replace('.', DS, $controller) . $depr . $request->action();
} elseif (false === strpos($template, $depr)) { } elseif (false === strpos($template, $depr)) {
$template = str_replace('.', DS, $controller) . $depr . $template; $template = str_replace('.', DS, $controller) . $depr . $template;
}
} }
} else {
$template = str_replace(['/', ':'], $depr, substr($template, 1));
} }
return $path . ltrim($template, '/') . '.' . ltrim($this->config['view_suffix'], '.'); return $path . ltrim($template, '/') . '.' . ltrim($this->config['view_suffix'], '.');
} }