首先,我们知道laravel调用模板用的是return view(‘index’),像这样子它默认是去加载Resources/views/index.blade.php,
class HomeController extends Controller
{
/**
* Display a listing of the resource.
* @return Response
*/
public function index()
{
return view('index');
}
}
像现在这样,我访问Home控制器里面的index方法时,默认加载的是Resources/views/index.blade.php,如果我想把它改为去加载我的自定义模板的文件夹里的index.blade.php,如pulic下templates里的hd文件夹,而且不影响其他控制器加载模板的文件夹。那就需要做如下更改:
1、在命名空间里加上
use View;
use App;
2、在Home控制中构造方法添加一下代码
public function __construct () {
//获得public下的templates文件夹路径
$path=[public_path ('templates').'/'.$config];
//改变模板的目录文件夹,在构造函数中将view加载模板的路径改变,指向我们给定的目录
View::setFinder (new FileViewFinder(App::make ('files'),$path));
}
这样只要一访问Home控制器就会先走构造方法,动态改变view的加载,将加载的目录指向了pulic的templates文件夹。
这个在写后台控制前端整套模板切换的时候可以派上用场。
类似上图,点击设为默认模板,前端首页即可切换整套模板。