9
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel でもCRUD を bake したい CakePHPユーザーのための infyom

Last updated at Posted at 2019-03-07

CakePHPからLaravelに移行すると cake.php bake に類するものが欲しくなると思います。そういうときは infyom がおすすめです。

InfyOm Laravel Generator : Laravel Scaffold, CRUD, API Generator

この infyom、Webでの編集画面の生成は、CakePHP の bake にちょっと劣るかもしれませんが、APIの生成、テストコードの生成などもでき、十分に使えます。

使い方

Laravelの環境構築

まずは Laravel の環境を構築しておきます。

インストール 5.8 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

http://127.0.0.1:8000/users

を開きます。

生成される画面はこんな感じ。

1.png 2.png 3.png
9
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?