LaravelでIDE補完されやすくするではide-helperの導入とLaravelの基本クラスのIDE保管用ファイルの作成方法を紹介しました。
今回はide-helperを使用してEloquentクラスを継承したモデルのプロパティなどをテーブルから作成してくれる機能を紹介します。
使用するテーブルとモデルはLaravelでマイグレーションしてモデルファイルを作成するの記事でご紹介したshopsテーブル/Shopモデルを使用します。
doctrine/dbalのインストール
ide-helperでモデルにコメントを入れる機能を使用するにはdoctrine/dbalの追加が必要になるので下記コマンドでインストールします。
composer require --dev doctrine/dbal
コマンドの実行
インストールしたら下記コマンドを実行すると書くモデルファイルに対してIDE補完用のコメントが追加されます。
php artisan ide-helper:models
コマンドを実行すると上書きしていいか聞かれるので、__yes__と入力してenterを押下します。
するとこのような何の記述もないモデルファイルが
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Shop extends Model
{
//
}
このようになります。
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
/**
* App\Shop
*
* @property int $id
* @property string|null $name 店舗名
* @property string|null $sub_name 支店名
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\Shop newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Shop newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Shop query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Shop whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Shop whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Shop whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Shop whereSubName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Shop whereUpdatedAt($value)
* @mixin \Eloquent
*/
class Shop extends Model
{
//
}
もし__プロジェクトルート/app__配下以外にモデルファイルを作成している場合(例えば__app/Models/Shop.php__みたいな場合は)
php artisan ide-helper:models App\\Models\\Shop
のようにnamespaceを指定してあげると反映されます。