我尝试在OctoberCMS应用中配置路由。我在我的插件的Plugin.php文件中配置路由。 目前我的代码:
public function boot()
{
Validator::extend('numeric_for_repeater', function($attribute, $value, $parameters) {
foreach ($value as $v)
{
$validator = Validator::make(
$v,
[
'stock_quantity' => 'sometimes|numeric',
'stock_votes_quantity' => 'sometimes|numeric',
'value' => 'sometimes|numeric',
],
$parameters
);
if ($validator->fails())
return false;
}
return true;
});
\Route::get('/oferty/{id}', function ($id = null) {
$theme = Theme::getActiveTheme();
$path = \Config::get('cms.themesPath', '/themes').'/'.$theme->getDirName();
$this->assetPath = $path;
$offer = new Offer();
return \View::make(self::MAMF_PAGE_DIR . 'oferta.htm', ['offer' => $offer->getOfferById($id)]);
});
}
但是我收到了一个错误:
View [.var.www.plugins.mamf.mamf2017..........themes.mamf2017.pages.oferta.htm] not found.
因为默认情况下10月需要插件目录中的视图文件。
如何在插件目录之外渲染视图,例如themes
路径中的app/themes/mamf2017/pages/oferta.htm
答案 0 :(得分:0)
我猜 self :: MAMF_PAGE_DIR 是您的应用程序的完整基本路径。例如
<强>的/ var / WWW /虚拟主机/ octdev /主题/ responsiv平坦/ 强>
简而言之, \ View :: make 需要来自root的绝对路径
现在它将尝试查找带有october-cms配置扩展名的文件 .htm 。其他人是 .blade 和 .htm.blade 等。
所以在你的情况下(视图)文件名是&#39; oferta.htm&#39; 那个。(点)被翻译成&#39; /&#39;路径分隔符所以只是不要使用它,只需使用 &#39; oferta&#39; ,这样它就会检查页面目录中的所有可能值
这个添加.htm是自动的,所以你只需要提供视图名称然后就会找到并自动工作
\Route::get('/oferty/{id}', function ($id = null) {
$theme = \Cms\Classes\Theme::getActiveTheme();
$path = \Config::get('cms.themesPath', '/themes').'/'.$theme->getDirName();
$this->assetPath = $path;
$offer = new Offer();
return \View::make(base_path() . $path . '/pages/' . 'oferta', ['offer' => $offer->getOfferById($id)]);
});
这是经过测试和工作正常希望这会对你有所帮助。 如果它不起作用请发表评论。