- Published on
laravel-admin で「作成を続行する」にデフォルトでチェックを入れる方法
目的
laravel-admin の管理画面の新規追加で「作成を続行する」にデフォルトでチェックを入れる
前提
laravel-admin がインストール済み
laravel-admin の公式の方法でコントロールが作成されていること
方法
laravel-admin の Form を継承して独自のフォームを作成する
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」を使っていますが他でも同じ
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 のリポジトリも公開しているので参考にしてください。