gpt4 book ai didi

php - 在 Laravel 4 中创建管理员界面的最佳实践

转载 作者:可可西里 更新时间:2023-10-31 23:02:18 26 4
gpt4 key购买 nike

我想为我的 Laravel 项目创建一个管理员界面,它与用户端完全分离。

例如,在 Yii 框架中,我可以制作一个模块,这将确保与用户端完全分离。在模块内,我可以使用单独的文件夹结构等。

最佳答案

这确实是一个广泛的问题,一个答案无法涵盖有关管理 Controller 或后端管理最佳实践的所有内容,但构建管理面板有一些基本概念:

// Keep all of your admin routes inside something like this
Route::group(array('prefix'=> 'admin', 'before' => 'auth.admin'), function() {

// Show Dashboard (url: http://yoursite.com/admin)
Route::get('/', array('uses' => 'Admin\\DashBoardController@index', 'as' => 'admin.home'));

// Resource Controller for user management, nested so it needs to be relative
Route::resource('users', 'Admin\\UserController');

});

// Other routes (Non-Admin)
Route::get('login', array('uses' => 'AuthController@showLogin' 'as' => 'login'));

通过使用prefix,你可以将所有url前缀为admin的管理路由分开,所以,如果你有一个 users 后端用户管理的 Controller 然后它的 url 将以 admin 为前缀,即 site.com/admin/users .同样使用 before 过滤器,您可以在一个地方为所有管理 Controller 添加身份验证,这意味着,要访问您的所有管理 Controller ,用户必须登录,并且过滤器可能是这样的:

Route::filter('auth.admin', function($route, $request, $args){
// Check if the user is logged in, if not redirect to login url
if (Auth::guest()) return Redirect::guest('login');

// Check user type admin/general etc
if (Auth::user()->type != 'admin') return Redirect::to('/'); // home
});

对于 CRUD(创建、读取、更新、删除),使用 resourceful controller ,例如资源丰富的路由声明示例中的 UserController

使用存储库类(Repository Pattern)来解耦依赖,阅读this article .

始终使用命名路由,即 array('as' => 'routename', 'uses' => 'SomeController@method'),这是命名路由的示例。命名路由很容易引用,即 return Redirect::route('admin.home') 将重定向到 site.com/admin 因为我们使用了 admin .home in as 为该路由分配名称。

将管理 Controller 保存在单独的文件夹中并使用命名空间,例如,Admin\\DashBoardController@index Controller 应位于app/controllers/admin 和您的 DashBoardController Controller 应该如下所示:

<?php namespace Admin;

class DashBoardController extends \BaseController {
public function index()
{
//...
}
}

还有很多但是够入手了,网上看文章一定要看documentation .

关于php - 在 Laravel 4 中创建管理员界面的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23295463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com