CakePHPからLaravelに移行すると cake.php bake
に類するものが欲しくなると思います。そういうときは infyom がおすすめです。
InfyOm Laravel Generator : Laravel Scaffold, CRUD, API Generator
この infyom、Webでの編集画面の生成は、CakePHP の bake にちょっと劣るかもしれませんが、APIの生成、テストコードの生成などもでき、十分に使えます。
使い方
Laravelの環境構築
まずは Laravel の環境を構築しておきます。
設定は、データベースに接続できるだけで大丈夫。.env
の DB_* の項目をみればだいたいわかります。
infyomのインストール、設定
その後パッケージをインストール。
composer.json に追記。5.8.x-dev, 5.8.0 のか所は利用している Laravel のバージョンに合わせます。
"require": {
"infyomlabs/laravel-generator": "5.8.x-dev",
"laravelcollective/html": "^5.8.0",
"infyomlabs/adminlte-templates": "5.8.x-dev",
# インストール
composer update
config/app.php の2か所に追記
'providers' => [
// ...略
Collective\Html\HtmlServiceProvider::class,
Laracasts\Flash\FlashServiceProvider::class,
Prettus\Repository\Providers\RepositoryServiceProvider::class,
\InfyOm\Generator\InfyOmGeneratorServiceProvider::class,
\InfyOm\AdminLTETemplates\AdminLTETemplatesServiceProvider::class,
],
'aliases' => [
// ...略
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
'Flash' => Laracasts\Flash\Flash::class,
],
その後、設定ファイルや infyom 関連ファイルを展開。
php artisan vendor:publish --all
php artisan infyom:publish
php artisan infyom.publish:layout
テーブルの準備と画面の作成
とりあえず準備されているマイグレーションファイルから users テーブルを作成します。
php artisan migrate
CRUDの作り方
php cake.php bake all [Model]
的な使い方、uses テーブルのCRUDを作る場合。
php artisan infyom:scaffold User --fromTable --tableName=users --paginate=25
書き方は
php artisan infyom:scaffold 生成するモデル名 --fromTable --tableName=元となるテーブル名
という形。 もし /admin 以下に配置したい場合は --prefix=admin
をつけます。
自動生成されたモデルをちょっと修正
生成されたコードは softDelete が有効になっていますが、テーブルにはカラムがないので、コメントアウトします。
app/Models/User.php
//use SoftDeletes;
また、IDが必須になっているのでそれをコメントアウトし無効にします。
public static $rules = [
// 'id' => 'required',
コマンド実行時にこのようなエラーが出たら
Symfony\Component\Debug\Exception\FatalThrowableError : Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found
以下のコマンドを実行後、もう一度 php artisan infyom:scaffold ...
を実行してください。
composer require doctrine/dbal
動作確認
サーバーを起動して
php artisan serve
を開きます。
生成される画面はこんな感じ。