Laravel-admin Vendor配下のUserControllerをオーバーライドする方法

laravel-adminのログイン画面

最終的に何がしたいか

laravel-adminをインストールした際に最初から組み込まれている管理者の一覧、編集、詳細ページを編集する為に、コントローラーをオーバーライド(override)して内容をカスタマイズします。例えば、パンくずリストなどは初期設定だと"Home > Auth > Usersになっていて、こちらを修正したい!と言った時に役立つ記事だと思います(基本的なことだと思いますが、意外とこういった記事がなかったのでメモ)。

コントローラのオーバライド方法

オーバーライドするファイル(/vendor/encore/laravel-admin/src/Controllers/UserController.php)

/app/Admin/Controllers/UsersController.php というファイルを新規で作成します。

<?php

namespace App\Admin\Controllers;

use Encore\Admin\Layout\Content;

class UserController extends \Encore\Admin\Controllers\UserController
{
    public function index(Content $content)
    {
        return $content
            ->header(777)
            ->description('overrideしました!')
            ->body($this->grid()->render());
    }
}

/app/Admin/routes.php にルーティングを追加します。

<?php

use Illuminate\Routing\Router;

Admin::registerAuthRoutes();

Route::group([
    'prefix'        => config('admin.route.prefix'),
    'namespace'     => config('admin.route.namespace'),
    'middleware'    => config('admin.route.middleware'),
], function (Router $router) {

    $router->get('/', 'HomeController@index');
    $router->resource('/auth/users', 'UserController');

});

\Encore\Admin\Controllers\UserControllerをextendsしたコントローラを作成し、ルーティングを追加するとオーバーライド完了です!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です