こんばんは、のるぼるのんです。仕事が忙しく、かなり久しぶりの投稿になってしまいました、、、。色々ネタは増えているので、チマチマ再開できればと思います。
さて、今回は、Laravel-adminでresourceファイルをvendor外に出力し、編集する下準備を行います。
条件としては
・Laravel v6.0.2
・Laravel-admin v1.7.7
で行きたいと思います。Laravelおよびlaravel-adminの導入、クイックスタートは既に終わっているものとします。
Laravelおよびlaravel-adminの導入は以下の記事を参考にしてください。
resourceファイルを設置するディレクトリを作成する
ディレクトリを作成するだけなので、特に言うことはありません。ディレクトリ名は管理がしやすい名前でお願い致します。
1 |
mkdir resources/views/laravel-admin |
作成したディレクトリにvendorからresourceファイルをコピーする
vendor内のresourceファイルを作成したディレクトリにコピーします。オプションを入れないとディレクトリは無視されてしまいますので、オプションは入れてコマンド入力してくださいね。
1 |
cp -rf vendor/encore/laravel-admin/resources/views/* resources/views/laravel-admin/ |
コピーしたファイルをresourceファイルとして読み込む
コピーしたviewファイルを読み込むように設定します。設定するファイルは、app/Admin/bootstrap.phpになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php /** * Laravel-admin - admin builder based on Laravel. * @author z-song <https://github.com/z-song> * * Bootstraper for Admin. * * Here you can remove builtin form field: * Encore\Admin\Form::forget(['map', 'editor']); * * Or extend custom form field: * Encore\Admin\Form::extend('php', PHPEditor::class); * * Or require js and css assets: * Admin::css('/packages/prettydocs/css/styles.css'); * Admin::js('/packages/prettydocs/js/main.js'); * */ Encore\Admin\Form::forget(['map', 'editor']); app('view')->prependNamespace('admin', resource_path('views/laravel-admin')); //追加 |
以上で設定は完了です。簡単でしたね。
それでは実際にファイルを編集してみましょう。
・table.blade.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
@php echo 'path 変更'; exit; // 追加です! @endphp <div class="box"> @if(isset($title)) <div class="box-header with-border"> <h3 class="box-title"> {{ $title }}</h3> </div> @endif @if ( $grid->showTools() || $grid->showExportBtn() || $grid->showCreateBtn() ) <div class="box-header with-border"> <div class="pull-right"> {!! $grid->renderColumnSelector() !!} {!! $grid->renderExportButton() !!} {!! $grid->renderCreateButton() !!} </div> @if ( $grid->showTools() ) <div class="pull-left"> {!! $grid->renderHeaderTools() !!} </div> @endif </div> @endif {!! $grid->renderFilter() !!} {!! $grid->renderHeader() !!} <!-- /.box-header --> <div class="box-body table-responsive no-padding"> <table class="table table-hover" id="{{ $grid->tableID }}"> <thead> <tr> @foreach($grid->visibleColumns() as $column) <th {!! $column->formatHtmlAttributes() !!}>{{$column->getLabel()}}{!! $column->renderHeader() !!}</th> @endforeach </tr> </thead> @if ($grid->hasQuickCreate()) {!! $grid->renderQuickCreate() !!} @endif <tbody> @if($grid->rows()->isEmpty()) @include('admin::grid.empty-grid') @endif @foreach($grid->rows() as $row) <tr {!! $row->getRowAttributes() !!}> @foreach($grid->visibleColumnNames() as $name) <td {!! $row->getColumnAttributes($name) !!}> {!! $row->column($name) !!} </td> @endforeach </tr> @endforeach </tbody> {!! $grid->renderTotalRow() !!} </table> </div> {!! $grid->renderFooter() !!} <div class="box-footer clearfix"> {!! $grid->paginator() !!} </div> <!-- /.box-body --> </div> |
table.blade.phpは一覧画面のコンテンツを表示するbladeファイルです。
http://ドメイン/admin/auth/usersにアクセスしてみてください。
このように表示されましたか?exitを効かせているのでecho直後で処理終了するはずです。
表示されればバッチリ完璧です!スタイルなど、独自にいじってみてください!
表示されなかった場合は、typoなど、エラーメッセージを元に修正してみてくださいね。
次回はgridファイルの変更を行いたいと思います。(直接この記事に関係ないかもしれません。編集可能にする、と言うのが今回の趣旨ですので、、、)
それではまた次回!よろしくお願い致します!
コメントを書く