ユーザ用ツール

サイト用ツール


サイドバー

このページの翻訳:



最近の更新



Tag Cloud

11_php:02_framework:01_laravel:27_laravel_voyager

27 Laravel Voyager

$ laravel new
$ composer require tcg/voyager

app.phpのProviderに追加

config/app.php

'providers' => [
・
・
TCG\Voyager\VoyagerServiceProvider::class,

インストール

$ php artisan voyager:install --with-dummy

Voyager コントローラーカスタマイズ

今回Songsモデルを作成している事を前提に説明

$ php artisan make:model Songs

1.BREADを作成

作成したSongsモデルから、BREADを作成する

2.View OverRide

今回の場合、slug-naeがsongsになります。

resources/views/vendor/voyager/[slug-name] 以下にbrose.blade.phpとedit-add.blade.phpを置けばオーバライドされる。

デフォルトのビューをコピーして利用

cp vendor/tcg/voyager/resources/views/bread/browse.blade.php resources/views/vendor/voyager/songs/
cp vendor/tcg/voyager/resources/views/bread/edit-add.blade.php resources/views/vendor/voyager/songs/

https://voyager.readme.io/docs/overriding-views

他のViewもvenderから出す場合

vendor/tcg/voyager/resources/views/を全部コピーしておく

$ rsync -av vendor/tcg/voyager/resources/views/ resources/views/vendor/voyager/

langも出しておく

$ rsync -av vendor/tcg/voyager/publishable/lang/ja/ resources/lang/vendor/voyager/ja/

3.コントローラーの参照先変更

config/voyager.phpを修正

config/voyager.php

     'controllers' => [
-        'namespace' => 'TCG\\Voyager\\Http\\Controllers',
+        //'namespace' => 'TCG\\Voyager\\Http\\Controllers',
+        'namespace' => 'App\\Http\\Controllers\\Voyager',
     ],

voyager:controllersを実行

$ php artisan voyager:controllers
$ ll app/Http/Controllers/Voyager/
total 44
-rw-r--r-- 1 matsui users 207 Apr  3 10:40 VoyagerAuthController.php
-rw-r--r-- 1 matsui users 207 Apr  3 10:40 VoyagerBaseController.php
-rw-r--r-- 1 matsui users 211 Apr  3 10:40 VoyagerBreadController.php
-rw-r--r-- 1 matsui users 219 Apr  3 10:40 VoyagerCompassController.php
-rw-r--r-- 1 matsui users 191 Apr  3 10:40 VoyagerController.php
-rw-r--r-- 1 matsui users 223 Apr  3 10:40 VoyagerDatabaseController.php
-rw-r--r-- 1 matsui users 211 Apr  3 10:40 VoyagerMediaController.php
-rw-r--r-- 1 matsui users 207 Apr  3 10:40 VoyagerMenuController.php
-rw-r--r-- 1 matsui users 207 Apr  3 10:40 VoyagerRoleController.php
-rw-r--r-- 1 matsui users 223 Apr  3 10:40 VoyagerSettingsController.php
-rw-r--r-- 1 matsui users 207 Apr  3 10:40 VoyagerUserController.php

4.コントローラーをコピーしてくる

ベースを元にコピーしてきて、namespaceと参照先を変更してやればよい。

# cp vendor/tcg/voyager/src/Http/Controllers/VoyagerBaseController.php app/Http/Controllers/Voyager/SongsController.php

$ diff -u vendor/tcg/voyager/src/Http/Controllers/VoyagerBaseController.php app/Http/Controllers/Voyager/SongsController.php 
--- vendor/tcg/voyager/src/Http/Controllers/VoyagerBaseController.php	2019-03-10 03:54:39.000000000 +0900
+++ app/Http/Controllers/Voyager/SongsController.php	2019-04-03 12:32:52.553751402 +0900
@@ -1,6 +1,6 @@
 <?php
 
-namespace TCG\Voyager\Http\Controllers;
+namespace App\Http\Controllers\Voyager;
 
 use Illuminate\Database\Eloquent\SoftDeletes;
 use Illuminate\Http\Request;
@@ -14,7 +14,7 @@
 use TCG\Voyager\Facades\Voyager;
 use TCG\Voyager\Http\Controllers\Traits\BreadRelationshipParser;
 
-class VoyagerBaseController extends Controller
+class SongsController extends VoyagerBaseController
 {
     use BreadRelationshipParser;

5.RouteのOverride

routes/web.php

Route::group(['prefix' => 'admin'], function () {
    Voyager::routes();
    Route::get('songs','Voyager\SongsController@index')->name('voyager.songs.index')->middleware('admin.user');
    Route::post('songs','Voyager\SongsController@index')->name('voyager.songs.index')->middleware('admin.user');
});
11_php/02_framework/01_laravel/27_laravel_voyager.txt · 最終更新: 2019/08/30 10:52 by matsui