Sin Note

laravel-admin で「作成を続行する」にデフォルトでチェックを入れる方法

2021/01/22 08:44#laravel-admin#Laravel

目的

laravel-adminの管理画面の新規追加で「作成を続行する」にデフォルトでチェックを入れる

前提

  • laravel-adminがインストール済み
  • laravel-adminの公式の方法でコントロールが作成されていること


方法

laravel-adminのFormを継承して独自のフォームを作成する 


app/Admin/Parts/Form/ContinueCreatingForm.php
namespace App\Admin\Parts\Form; use Encore\Admin\Form; /**  * 「作成を続行する」にチェックをデフォルトで入れるフォーム  *  */ class ContinueCreatingForm extends Form {   public function __construct($model)   {     parent::__construct($model);     $this->footer(function ($footer) {       $footer->checkCreating(true);     });   } }


フォームの読み込むを変更する

Model「User」を使っていますが他でも同じ

app/Admin/Controllers/UserController.php
protected function form() {     $form = new ContinueCreatingForm(new User());     $form->text('name', __('Name'));     $form->email('email', __('Email'));     $form->datetime('email_verified_at', __('Email verified at'))->default(date('Y-m-d H:i:s'));     $form->password('password', __('Password'));     $form->text('remember_token', __('Remember token'));     return $form; }


参考

動作確認済みの環境

  • PHP 7.3.12
  • composer.json


{     "name": "laravel/laravel",     "type": "project",     "description": "The Laravel Framework.",     "keywords": [         "framework",         "laravel"     ],     "license": "MIT",     "require": {         "php": "^7.2",         "encore/laravel-admin": "^1.7",         "fideloper/proxy": "^4.0",         "laravel-admin-ext/ckeditor": "^1.0",         "laravel/framework": "^6.2",         "laravel/tinker": "^2.0",         "laravel/ui": "^1.1"     },     "require-dev": {         "facade/ignition": "^1.4",         "friendsofphp/php-cs-fixer": "^2.16",         "fzaninotto/faker": "^1.4",         "mockery/mockery": "^1.0",         "nunomaduro/collision": "^3.0",         "phpunit/phpunit": "^8.0",         "squizlabs/php_codesniffer": "^3.5"     },     "config": {         "optimize-autoloader": true,         "preferred-install": "dist",         "sort-packages": true     },     "extra": {         "laravel": {             "dont-discover": []         }     },     "autoload": {         "psr-4": {             "App\\": "app/"         },         "classmap": [             "database/seeds",             "database/factories"         ]     },     "autoload-dev": {         "psr-4": {             "Tests\\": "tests/"         }     },     "minimum-stability": "dev",     "prefer-stable": true,     "scripts": {         "post-autoload-dump": [             "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",             "@php artisan package:discover --ansi"         ],         "post-root-package-install": [             "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""         ],         "post-create-project-cmd": [             "@php artisan key:generate --ansi"         ]     } }


まとめ

デフォルトで関数が存在するので結構簡単に実装できますね。
設定が色々してあるlaravel-adminのリポジトリも公開しているので参考にしてください。
ではまた次回の記事にて