laravel學習-安裝entrust和l5-repository2個基本依賴
阿新 • • 發佈:2019-01-04
1.安裝 'l5-repository': 直接參照github文件:https://github.com/andersao/l5-repository 1>composer require prettus/l5-repository 2>vim config/app.php 給 'providers' 元素,新增 'Prettus\Repository\Providers\RepositoryServiceProvider::class,' 3>php artisan vendor:publish 在 config/ 下,生成一個 'repository.php' 的配置檔案 4>安裝 'league/fractal',l5-repository的presenter可能需要 https://packagist.org/packages/leagua/fractal - 官方映象包介紹 composer require league/fractal - 進行安裝 5>vim repository.php 我們配置命令的生成器: 'generator' => [ 'basePath' => app_path(), 'rootNamespace' => 'App\\', 'paths' => [ 'models' => 'Models', 'repositories' => 'Repositories', 'interfaces' => 'Repositories', 'transformers' => 'Transformers', 'presenters' => 'Presenters', // 'validators' => 'Validators', // 'controllers' => 'Http/Controllers', // 'provider' => 'RepositoryServiceProvider', // 'criteria' => 'Criteria', // 'stubsOverridePath' => app_path() ] ] 這個只是針對生成的目錄進行配置,不想生成這些檔案,還不行 6>l5-repository的相關的一些命令: php artisan make:entity Post - 有提示,需要生成哪些檔案,yes | no php artisan make:repository "Blog\Post" - 只生成repository,會生成 'model/repository/migration' php artisan make:transformer Post - 生成 transformers php artisan make:presenter Post - 生成 presenters // 這2個使用較少 php artisan make:bindings Post - 會生成 'repositoryProviderServer.php',並繫結一個post相關的服務 php artisan make:criteria My - 生成 MyCriteria 2.安裝 'Zizaco/entrust' 直接參照github文件: https://github.com/Zizaco/entrust 中文相關資料: http://laravelacademy.org/post/3755.html http://laravelacademy.org/post/3761.html 1>composer require zizaco/entrust 5.2.x-dev 2>vim config/app.php 1)給 'providers' 元素,新增 'Zizaco\Entrust\EntrustServiceProvider::class,' 2)給 'aliases' 元素,新增 ''Entrust' => Zizaco\Entrust\EntrustFacade::class,' 3>php artisan vendor:publish 在 config/ 下,生成一個 'entrust.php' 的配置檔案 4>vim config/auth.php,可新增 '使用者認證' 配置: 假設我們需要驗證的是後臺使用者表 'admin_users': 'guards' 元素: 'admin' => [ 'driver' => 'session', 'provider' => 'admin_users', ], 'providers' 元素: 'admin_users' => [ 'driver' => 'eloquent', 'model' => App\Models\AdminUser::class, 'table' => 'admin_users', ], 'passwords' 元素: 'admin_users' => [ 'provider' => 'admin_users', 'email' => 'auth.emails.password', 'table' => 'admin_password_resets', 'expire' => 60, ], 5>vim app/Http/Kernel.php 給 'routeMiddleware' 陣列,新增 'entrust' 自帶的中介軟體: 'role' => \Zizaco\Entrust\Middleware\EntrustRole::class, 'permission' => \Zizaco\Entrust\Middleware\EntrustPermission::class, 'ability' => \Zizaco\Entrust\Middleware\EntrustAbility::class, 6>生成遷移資料表: 這裡我們需要進行配置:config/entrust.php 進行RBAC許可權表的配置。 php artisan entrust:migration - 根據我們的entrust.php的配置,生成遷移的資料表語句 7>建立真實資料表(暫不執行): php artisan migrate 3.安裝的RBAC後臺許可權認證,是沒有使用者表的,所以我們還得建立 'admin_users' 資料表,以及模仿laravel自帶的Auth前臺認證。 1>參閱laravel的Auth使用者認證文件: http://laravelacademy.org/post/3074.html 快速配置出前臺使用者認證: 1)php artisan make:auth - 生成一堆檔案,以及新增檢視: 2)vim app/Http/Controllers/Auth/AuthController.php protected $redirectTo = '/home'; // 預設是 '/',登入認證成功後的跳轉地址 3)php artisan migrate - 生成Auth認證相關資料表(暫不執行,因為一旦執行,會生成所有的資料表) 就可訪問前端頁面,登入、註冊、忘記密碼等頁面。 2>我們搭建後臺認證 可檢視專案原始碼,模仿 admin_users 後臺使用者認證: https://github.com/yuansir/laravel5-rbac-example /* 模仿 'laravel5-rbac-example' 專案進行修改: */ 1.資料庫相關: 1>找到我們專案中的 database/migrations/xx_entrust_setup_table.php,對照 'laravel5-rbac-example' 的database/migrations/的 'xx_entrust_base.php' 和 'xx_entrust_pivot_admin_user_role.php' 進行比對。我們修改成我們自己想要的後臺一些欄位! 2>admin_users資料表和忘記密碼錶 建立2個遷移記錄: php artisan make:migration create_admin_users_table php artisan make:migration create_admin_password_resets_table 編輯2個遷移記錄: xx_create_admin_users_table.php xx_create_admin_password_resets_table.php 2.開始搞admin_users相關內容: 1>控制器:app/Http/Controllers/Admin 2>中介軟體:app/Http/Middleware/AuthenticateAdmin.php php artisan make:middleware AuthenticateAdmin 編輯進行修改 3>Kernel.php - 將上面的admin相關的中介軟體,得註冊到 中介軟體配置檔案中 vim Kernel.php,在 $routeMiddleware 陣列中,新增: 'auth.admin' => \App\Http\Middleware\AuthenticateAdmin::class, 4>表單請求驗證:app/Http/Requests/ 5>routes.php - 新增後臺所有相關的路由 6>後臺所有相關的 'Model',我們定的目錄為 'app/Models/' 7>後臺模板:resources/views/admin 8>public:存放後臺靜態檔案,圖片、js、css -------- 9>複製l5-repository依賴相關目錄,這個也是需要的: app/Repositories app/Presenters app/Transformers 10>對複製過來的各個東西進行修改