我正在从教程制作一个基本的CRUD应用程序,但意识到我想掩盖管理文件夹中的功能。
该功能是一个博客管理系统(索引,创建,显示,删除等),这一切都来自domain.com/blog。
从那时起,我建立了一个用户系统和一个受保护的管理区域,因此决定将视图文件移动到一个管理文件夹中。
为了应对这种变化,我在这里询问并且被包围了我的资源路线:
Route::group(array('before' => 'is_admin', 'namespace' => 'admin', 'prefix' => 'admin'), function()
Route::resource('blog', 'BlogController');
});
然后将我的BlogController移动到我的控制器文件夹中的admin文件夹中,然后将命名空间添加到该控制器:
namespace Admin;
并在BaseController之前添加一个反斜杠。
这一行:
return View::make('admin/blog.index', compact('blogs'));
导致错误,所以我不得不在View ::
之前添加反斜杠return \View::make('admin/blog.index', compact('blogs'));
我怎么不必为所有课程做到这一点?
然后一旦没问题,我的索引文件包含:
{{ link_to_route('blog.create', 'Add new blog') }}
返回未定义的路由错误...我哪里错了?资源路线肯定应该抓住这些路线等吗?似乎很多工作只是让BlogController在管理目录中工作......
答案 0 :(得分:0)
这就是名称空间的工作方式。您可以import namespaces添加:
use View;
现在您只能在文件的其他位置使用View
而非\View
,因此文件的开头应如下所示:
<?php namespace Admin;
use View;
但是您需要将这个添加到您移动到命名空间Admin
;
你也可以阅读How to use objects from other namespaces and how to import namespaces in PHP来更好地理解它。