Help us understand the problem. What is going on with this article?

Laravel DB.com 』マニュアル 〜コード書かずに超スピード開発(DEMO動画あり)〜

Laravel DB.com ってなに?

コード書かずに超スピード開発って書いてますが、基本ベースのCRUD生成までがコード書かないってことですね。そこからの細かい仕様に合わせる部分は自身で修正する必要はあリます。ベースを作るまでは自動って感じでしょうか。

「LaravelDB.com」は、ER図(テーブルの設計)を作成することで、”Migration” OR ”CRUD(テストデータ)”のコードまで生成できるサービス(ツール)です。

DEMO動画(操作方法)

en.jpg

注意)以前に見たことがある人は「PWA」でChcheAPIが効いてて古い画面のままかもしれません。
その場合には、[開発者ツール]→[Application]→[Clear Storage]でキャッシュを削除してください。

「 LaravelDB.com 」の特徴

  • Webサービスだから「 家・会社のパソコン 」でも同じデータを活用できる
  • テーブル設計をクラウドに保存可能 ( 他アプリの設計に使い回せる! )
  • Migration自動生成 / CRUD自動生成 / テストデータ(Faker)自動生成
  • Validation(テーブル設計時のカラム型を参照して自動生成 ※Enum型は自分でCODE修正必要かも...)
  • 確認環境: Mac: Chromeブラウザ
  • 開発環境: Laravel5.5 ~ 6.x / PHP7.2.1 / MySQL5.6.38

【 CRUD: 新しいプロジェクトを用意 】

最低限Laravelがインストールした状態(Welcomeページ表示)を準備します!
1. この時点ではまだLOGINは作らないように!
2. .env と MySQLのDB準備はしておきましょう。
image.png

【 LaravelDB.comへ ログイン 】

Googleアカウントのみログイン可能です。(画面右上 OR ページ下部の中央)
LaravelDB.com
en.jpg

【 LaravelDB.comの POINT!! 】

ER図を作成していきますが重要事項があります!

<<重要>>
主キーのAutoIncrementは どのテーブルも『 id 』 と固定すること!!

image.png

LaravelのEloquentModel を便利に使うためには、どのテーブルも 『 id 』 と固定するのが吉です。
理由は「 モデル名::find($id); 」と便利に使う場合は 主キーのAutoIncrement 『 id 』 名にしておかないと動作しないからです( Laravelを勉強してる人はなんとなく知ってることでしょうか )。
※ laravelDB.comのCRUDでも生成されるファイルは「 ○○○::find($id); 」を使ってるためそ!
※ laravelに最初から入っているテーブル「user」「password_resets」は作成しないこと(migrate時に上書きしてしまいます)
※慣れれば簡単ですが、少しだけ慣れる時間は必要ですね。


【 CRUDを生成してみる! 】

  1. まずは、ER図を簡単に作ってみましょう!! その後に右メニュー「 ER図のLoad/Save 」をクリックすると以下画面が表示されます。
  2. 外部キーを沢山つけてる場合は、Migrationの順番が重要なので試す場合は「OFF」がオススメです。
  3. 「 Laravel( CRUD BUILD) 」 ボタンをクリックでファイルが生成されます!!

【 ダウンロードファイルを確認しましょう 】

  1. Zip圧縮ファイルがダウンロードされるので、Zipを展開(解凍)して中を見てみましょう!。CRUDに必要なファイルが一式入っています。
  2. 下図:左側(CRUDファイル)、右図laravelのフォルダ

【移行方法】
Macの場合: 「Optionキー + ドラッグ&ドロップ」 → 「結合」でフォルダの上書きではなく、結合になります。
Winの場合:「ドラッグ&ドロップ」で結合できます。

ダウンロードした各フォルダを上記の方法で移動しましょう!

【 LaravelのHOMEページを表示しましょう 】

私の環境では「http://localhost/

【 「 コマンド 」 を3つ順番に打ちましょう! 】

<<重要>>
 DBや.env設定など最低限の設定を完了しておくこと!!

php artisan migrate

composer update

//テストデータいらない場合は打たなくてもOK
php artisan db:seed

3つ目のコマンドはテストデータ登録の実行コマンド

Faker注意点有り!

テストデータ登録「 database/seeds/以下 」Fakerファイルの中はこんな感じです。
TUsersTableSeeder_php_—_test3.jpg
自動で文字が入ってるので、精度はまあこんなもんですかね。※文字列、数値、日付は自動で判定して入れてくれてるようです。
Fakerで使えるタイプ一覧、 自身で変更して使いたい場合はこちらを参考にすることをオススメします。

「address」や「url」を使う場合はカラムサイズに気をつけましょう!

【 完成: ブラウザで確認しましょう! 】

http://localhost/ (URLは開発環境によって異なります) で確認しましょう!
あなたが作ったテーブルのCRUD画面へ遷移できますよ!!

welcome.blade.php

作成されたindex/show/editの画面
基本的な処理が最初から出来てます!捗りそうですね!
image.png

Validationがスゴイ! → テーブル設計に合わせて生成

例でざっくりテーブルをER図で書いてみました。
以下"t_gsusers"テーブルを中心に見ていきます。

生成されたコントローラーのcreate(),edit()にはこういったvalidationが挿入されます。

TGsusersController
            $this->validate($request, [
                "name" => "required|max:128", //string('name',128)
                "lid" => "required|max:128", //string('lid',128)
                "lpw" => "required|max:128", //string('lpw',128)
                "m_department_id" => "required|integer", //integer('m_department_id')
                "m_position_id" => "required|integer", //integer('m_position_id')
                "m_prefectures_id" => "required|integer", //integer('m_prefectures_id')
                "m_kanri_id" => "required|integer", //integer('m_kanri_id')
                "m_lifeflg_id" => "required|integer", //integer('m_lifeflg_id')
                "m_test_id" => "required|integer", //integer('m_test_id')

            ]);

{{old('name')}} → 入力項目を補完

validationで未入力等ではじかれた場合、入力した文字を消さずに表示します。

date,datetime型 → 入力フォー厶type="date"

  • 画面表示側もtype='date'
  • validation側もdateチェックが入ります。

ER図外部キー設定→JOIN自動生成 QueryBuilderをController側にコメントで用意

イチからQueryBuilderを使用して、JOINを書くのは大変です。ベースになる部分は生成してくれます。使用する場合はコメントになってるのでコメントを外し、上記に書かれてるコードのEloquentModelの1行をコメントして使います。

※機械的に作成してるため、より良い記述に変更は必要になります。

2月8日追加Tableのカラム・コメントを確認できるHTMLファイルを生成

https://qiita.com/daisu_yamazaki/items/c447e3bca2740140bdcd
こちらのリンクに新しい記事を追加しておきました!!見やすい!!

動作した後はコードを見ましょう!

最低限のコードは出来上がってます!あとは、仕様に合わせて修正・追加していきましょう!!!
- Routing
- Controller
- Views
- Model
後は、自分で変更をいれていくだけですね。

Laravel専用ツール!!

日本から世界へ!世界で使われるプロダクトになることを願っております。
是非、応援の程よろしくお願いいたしますm(_ _)m

Twitter: LaravelDB.com


LaravelDB.com解説ページ一覧

LaravelDB.com 対応カラム一覧

https://qiita.com/daisu_yamazaki/items/92dc3cc599a264c3fb0f

LaravelDB.com テーブル命名ルール

https://qiita.com/daisu_yamazaki/items/1cb5987cc6d1008def82

LaravelDb.com integerの注意点

https://qiita.com/daisu_yamazaki/items/f2e6d58cfa20fa81fd54

LaravelDB.com Faker(テストデータ投入)

https://qiita.com/daisu_yamazaki/items/57669e8fa2c256d85c95

以上

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした