47歳でやむなくセミリタイア

病気のためセミリタイアをすることに。現在は週20時間程度のバイトをしています。その他、雑多なことを記録として書いています。

Yii2の使い方: Giiを使ってCRUDコードを作成する (+ Pretty URL)

暑いんだけど、そこはかとなく涼しさを感じるこの頃です。気温の割に涼しく感じます。

Yii2の使い方の続き。今回はCRUDコードを作ってみます。CRUDはCreate/Read/Update/Deleteの頭文字を取って、作成/読み出し/更新/削除を行う操作を指しています。
ここ(始めよう: Gii でコードを生成する | Yii 2.0 決定版ガイド | Yii PHP Framework)を見ながらやります。

Pretty URLに変更

と、その前に、前回忘れていた、Pretty URL(見た目の良いURL)への変更を行っておきます。Pretty URLを使うと、http://localhost/yii&r=site/loginという指定が、http://localhost/yii/site/loginとなります。こちらの方が、見た感じはわかりやすい。
backend/config/main.phpに以下を追加する。最近のadvancedテンプレートだと、コメントアウトだけすればいいようになっています。

        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
            ],

backend/web/.htaccessを作成して、以下を記載する。

RewriteEngine on
RewriteBase /yii
RewriteRule ^index.php/ - [L,R=404]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

これでOKです。

CRUDコードを作成する

Giiの起動

最初の設定時に、initの実行時に、開発環境(Development)を指定していれば、http::/localhost/yii/giiをアクセスするだけでGiiが使えるようになっています。
f:id:ekutajp:20190902190939p:plain

UserモジュールのCRUDコードを作成してみる

今回作成するのは、ログインに使用しているアカウント情報のCRUDコードです。これでアカウント情報の編集ができるようにしてみます。
Giiのページの「CRUD Generator」→「Start」をクリックして、以下の情報を入れます。

  • Model Class: common\modules\User
  • Search Model Class: backend\models\UserSearch
  • Controller Class: backend\controllers\UserController
  • View Path: @app/views/user
  • Enable I18NとEnable Pjaxにチェック

f:id:ekutajp:20190902192257p:plain
「Generate」を実行すると、CRUDを実行する以下のコードが作成されます。

generated controllers\UserController.php
generated models\UserSearch.php
generated views\user\_form.php
generated views\user\_search.php
generated views\user\create.php
generated views\user\index.php
generated views\user\update.php
generated views\user\view.php

作成されたCRUDのページを見てみる

http://localhost/yii/user/index にアクセスしてみます。
f:id:ekutajp:20190902194913p:plain
う~ん。やっぱり自動生成のコードだと表示が微妙です。ここから見られるページにするのは大変かな。ただ、単純なコードなので、勉強するには良いと思います。

実際に作るときにはGiiで生成されたコードを使うより、他のプロジェクトを参考にしたほうが良いでしょうね。