ユーザ用ツール

サイト用ツール


11_php:02_framework:01_laravel:27_laravel_voyager

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
11_php:02_framework:01_laravel:27_laravel_voyager [2019/04/02 14:37] – 作成 matsui11_php:02_framework:01_laravel:27_laravel_voyager [2019/08/30 01:52] (現在) – [2.View OverRide] matsui
行 21: 行 21:
 </code> </code>
  
 +===== Voyager コントローラーカスタマイズ =====
  
 +今回Songsモデルを作成している事を前提に説明
 +  $ php artisan make:model Songs
 +
 +==== 1.BREADを作成 ====
 +
 +作成したSongsモデルから、BREADを作成する
 +
 +{{:11_php:02_framework:01_laravel:voyager.png?400|}}
 +
 +==== 2.View OverRide ====
 +今回の場合、slug-naeがsongsになります。
 +
 +resources/views/vendor/voyager/[slug-name] 以下にbrose.blade.phpとedit-add.blade.phpを置けばオーバライドされる。
 +
 +デフォルトのビューをコピーして利用
 +<code>
 +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/
 +</code>
 +
 +[[https://voyager.readme.io/docs/overriding-views]]
 +
 +
 +=== 他のViewもvenderから出す場合 ===
 +vendor/tcg/voyager/resources/views/を全部コピーしておく
 +
 +<code>
 +$ rsync -av vendor/tcg/voyager/resources/views/ resources/views/vendor/voyager/
 +</code>
 +
 +
 +=== langも出しておく ===
 +<code>
 +$ rsync -av vendor/tcg/voyager/publishable/lang/ja/ resources/lang/vendor/voyager/ja/
 +</code>
 +==== 3.コントローラーの参照先変更 ====
 +
 +config/voyager.phpを修正
 +<code|config/voyager.php>
 +     'controllers' => [
 +-        'namespace' => 'TCG\\Voyager\\Http\\Controllers',
 ++        //'namespace' => 'TCG\\Voyager\\Http\\Controllers',
 ++        'namespace' => 'App\\Http\\Controllers\\Voyager',
 +     ],
 +</code>
 +
 +voyager:controllersを実行
 +<code>
 +$ 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
 +</code>
 +
 +==== 4.コントローラーをコピーしてくる ====
 +
 +ベースを元にコピーしてきて、namespaceと参照先を変更してやればよい。
 +
 +<code>
 +# 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;
 +</code>
 +
 +
 +==== 5.RouteのOverride ====
 +<code|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');
 +});
 +</code>
 {{tag>Laravel Voyager}} {{tag>Laravel Voyager}}
11_php/02_framework/01_laravel/27_laravel_voyager.1554215825.txt.gz · 最終更新: 2019/04/02 14:37 by matsui