LaravelのDatabaseのModelのメソッドがIntelliJに認識されない問題を解決する

この記事の目次
chevron_right 解決策

例えばUser.phpのように、DatabaseのEloquentORMを利用する際に、

User::truncate();

と書いたらIntelliJに認識されず、
「truncateメソッドなんてねーよ!!(Method 'truncate' not found)」と怒られます。

鬱陶しいので解決していきましょう。

解決策

簡単です。
User.phpのクラスコメントに以下を追加します。

@mixin \Illuminate\Database\Eloquent\Builder

全体で見るとこんな感じ

/**
 * Class User
 *
 * @mixin \Illuminate\Database\Eloquent\Builder
 * @package App
 */
 class User extends Authenticatable

もっというとIntelliJはフルパスをuseにしたがります。
こうなります。(Alt + Enterで自動でやってくれる)

(略)

use Illuminate\Database\Eloquent\Builder as BuilderAlias;

(略)

/**
 * Class User
 *
 * @mixin BuilderAlias
 * @package App
 */
class User extends Authenticatable

以上です。
意外と探すのに苦労しました

[PR] おすすめの本
この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。