daison/admin-laravel

为您的Laravel网站准备的现成管理后台。

1.2.2.4 2015-04-07 02:37 UTC

This package is auto-updated.

Last update: 2024-09-15 06:55:32 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

我在寻找什么?

  • 开发者 - 能帮助我修改、重构和添加功能的人。
  • 翻译者 - 您可以通过翻译响应消息来帮忙。
  • 设计师 - 可以将资产转换为独特设计的设计师,而不仅仅是使用免费设计。荣誉属于您。

Laravel Admin

我仍在更新这个管理包,当您使用dev-master时,您将看到一些示例路由和导航链接,这些都是我测试此包所有功能的示例。每个版本都有一个分支,您需要切换到特定README文件所使用的分支。

无论如何,我使用这个设计http://www.blacktie.co/demo/dashgumfree/作为我的基础,所以请尝试审查代码,稍后我会导入其他您可以轻松配置的管理模板。好评!

启动

将其包含在您的composer中,如果您想使用最新分支,请使用dev-master

  	"require": {
  		"daison/admin-laravel": "1.2.*"
  	}

更新您的composer composer update
转到/app/config/app.php并添加此行'Daison\AdminLaravel\AdminLaravelServiceProvider',
转到您的命令行并发布配置、视图和资源php artisan config:publish daison/admin-laravel php artisan view:publish daison/admin-laravel php artisan asset:publish daison/admin-laravel --path="vendor/daison/admin-laravel/src/assets"
设置您的数据库和Laravel配置,并运行包迁移php artisan migrate --package="daison/admin-laravel"

或者如果您有现有的用户表,则使用发布

    php artisan migrate:publish daison/admin-laravel

预测试

转到您的浏览器localhost:8080/admin您现在可以访问管理登录页面

转到您的命令行,让我们创建一个账户来测试这个管理面板

  php artisan tinker
  > $user = new User;
  > $user->email = "email@gmail.com";
  > $user->password = Hash::make('abcd');
  > $user->save();
  > $role = new Role;
  > $role->name = 'superuser';
  > $role->save();
  > $user_role = new UserHasRole;
  > $user_role->user_id = $user->id;
  > $user_role->role_id = $role->id;
  > $user_role->save();

返回到页面,登录您刚刚创建的账户。

准备好了!现在您可以看到导航栏、站点名称,甚至注销按钮,让我们转到配置。

配置

记得我们使用了这个命令php artisan config:publish daison/admin-laravel转到/app/config/packages/daison/admin-laravel/文件夹,您可以看到这些文件

  • lang
    • en.php
  • general.php
  • navigations.php
  • routes.php

#### 导航 创建我们的示例导航

    [name] => [
      'name' => 'Navigation Name',
      'icon' => 'fa fa-home fa-fv',
      'url'  => '/admin/sample',
      'items'=> [
          [name] => [
              'name' => 'Second Level Nav Name',
              'icon  => '',
              'url'  => '/admin/sample/1',
          ],
          [name] => [
              'name' => 'Second Level Nav Name',
              'icon  => '',
              'url'  => '/admin/sample/2',
          ],
      ],
    ],

创建这些链接后,刷新页面以查看更改。您甚至可以使用'roles' => ['superuser']来限制视图访问。

#### 路由 基于我们的导航链接,我们需要创建一个路由来分配控制器进行工作。您也可以使用/app/config/routes.php中的原始路由文件,但我建议使用这种方法将您的原始路由与后台路由分开。

'admin_sample_get' => [
  'process' => 'get',
  'url'     => '/admin/sample/',
  'uses'    => 'SampleController@showSample',
],
'admin_sample_post' => [
  'process' => 'post',
  'url'     => '/admin/sample/',
  'uses'    => 'SampleController@saveSample',
],
'admin_sample_rest_get' => [
  'process' => 'get',
  'url'     => '/admin/inventory/{id}/edit',
  'uses'    => 'InventoryController@showEditItem',
],
'admin_sample_rest_post' => [
  'process' => 'post',
  'url'     => '/admin/inventory/{id}/edit',
  'uses'    => 'InventoryController@updateItem',
],

现在创建您的示例控制器/库存控制器,处理响应的责任由您自己决定。您甚至可以将'roles' => ['superuser']分配给每个请求,您也可以提供'is_auth' => true以将访客重定向到登录页面。

#### 仍在使用主路由 您仍然想使用主app/routes.php,但是您想将角色管理用于您的路由。转到您的控制器__construct并执行构造函数注入。

  use Daison\AdminLaravel\AdminLaravel as Admin;
  
  class MyController
  {
    private $admin;
    public function __construct(Admin $admin)
    {
      $this->admin = $admin;
    }
    
    public function showProfile()
    {
      if ($this->admin->hasAnAccess(['superuser','agent']) == false) {
        // It means the Authenticated user doesn't have roles
        // Redirect the user, show the access not allowed page... and so on..
      }
    }
    
    public function saveProfile()
    {
      // same thing as the showProfile() method.
    }
  }

我仍在更新这个README。