如何从 Laravel 4 中的替代目录加载视图

2022-01-08 00:00:00 namespaces php laravel laravel-4

在我的 Laravel 4 应用程序的根目录中,我有一个文件夹 themes.在 themes 文件夹中,我有 defaultazure.如何从特定路径中的 themes/default 文件夹访问视图.

In my Laravel 4 application's root directory, I have a folder themes. Inside the themes folder, I have default and azure. How can I access view from this themes/default folder in a specific route.

Route::get('{slug}', function($slug) {
    // make view from themes/default here
});

我的目录结构:

-应用程序

--主题

---默认

---天蓝色

我需要从 localhost/laravel/app/themes/default 文件夹加载视图.请解释一下.

I need to load views from localhost/laravel/app/themes/default folder. Please explain this.

推荐答案

这里我没有从 public 文件夹访问我的项目.而不是这个,我从项目根目录本身访问.

Here I am not accessing my project from public folder. Instead of this I am accessing from project root itself.

我看到一个关于使用替代路径查看视图的论坛讨论这里.但我对此有点困惑.讨论的解决方案是,

I have seen a forum discussion about Using alternative path for views here. But I am little confused about this.The discussed solution was,

你会添加一个 location 像,

You'd add a location like,

View::addLocation('/path/to/your/views');

然后为主题添加namespace

Then add namespace for theme,

View::addNamespace('theme', '/path/to/themes/views');

然后渲染它,

return View::make('theme::view.name');

/path/to/ 的值是多少?

我可以在不同的操作系统中使用同一个项目而不改变路径吗?

Can I use the same project in different operating system without changing the path?

是的,我们可以使用以下方法来做到这一点,

Yes, we can do this using the following,

将以下内容放入 app/start/global.php

    View::addLocation(app('path').'/themes/default');
    View::addNamespace('theme', app('path').'/themes/default');

然后按默认方式调用view,

Then call view like the default way,

    return View::make('page');

这将呈现 project_directory/app/themes/defualt 文件夹中的 page.phppage.blade.php 文件.

This will render page.php or page.blade.php file from project_directory/app/themes/defualt folder.

相关文章