这是我在 Laravel 的第一个项目,所以和我一起玩吧!
目标是创建一个CMS。每个页面都会有它自己的“slug”,所以如果我命名一个页面This is a test
,它的 slug 将是this-is-a-test
。我希望能够通过转到 来查看该页面example.com/this-is-a-test
。
为此,我猜我将不得不做类似的事情:
Route::any('(:any)', 'view@index');
并使用索引方法创建一个名为 View 的控制器。都很好,对吧?
问题是创建管理区域。我将在该区域内创建几个页面,例如仪表板、页面、设置和工具。由于所有这些都是管理中的子页面,我认为将它们设为嵌套控制器是合适的,对吧?唯一的问题是,当我访问时/admin
,我想直接显示仪表板(/admin/dashboard
)。我宁愿只调用仪表板控制器,而不是/admin/dashboard
从管理控制器重定向。那可能吗?
所以,为了说明我的意思:
example.com/admin -> loads admin.dashboard
example.com/admin/dashboard -> also loads admin.dashboard
这是我所有的路线:
Route::get('admin', array('as' => 'admin', 'use' => 'admin.dashboard@index'));
Route::get('admin/dashboard', array('as' => 'admin_dashboard', 'use' =>
Route::any('/', 'view@index'); // Also, should this be below or above the admin routes? This route will show the actual cms pages.'admin.dashboard@index'));
这是我的 admin_dashboard 控制器:
class Admin_Dashboard_Controller extends Base_Controller {
public $restful = true;
public function get_index()
{
return 'in dashboard';
}
}
视图控制器只显示一个到管理页面的链接,这是有效的。我只是无法弄清楚管理路线有什么问题?当我去/admin
或admin/dashboard
我只是得到一个空白页时,没有 404。如果我去admin/blah
或只是blabla
我得到一个 404,所以我知道正在发生某些事情,它只是没有正确发生。我错过了什么吗?