所以我刚刚开始与Laravel(使用v5)和雄辩.我正在努力获取一些基本的API并运行,并注意到许多工作方法不显示在PHPStorm的代码提示
所以我有这个模型:
namespace Project\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract; class User extends Model implements AuthenticatableContract,CanResetPasswordContract { }
在我的一个控制器我试图做
User::query()->orderBy('id','desc');
User :: query()创建一个Eloquent Builder对象,orderBy()行为正确,没有错误.但是,当键入User :: query() – >时,PHPStorm不显示orderBy()(或take(),skip(),我确定其他)并在实际使用时发出警告.
我正在使用Laravel IDE Helper,它非常有助于向门面提供代码提示,但不是对模型/构建者的看法.
有人有解决这个问题吗?
解决方法
对于未来的Google员工,如果您仍然坚持使用Laravel,OP也可能是OP.
laravel-ide-helper套装非常优雅地解决了这个问题,我相信这是一个比较新的功能;生成模型PHPDocs.
PHP artisan ide-helper:models
生成的元数据将为每个类看起来像这样:
namespace App { /** * App\Post * * @property integer $id * @property integer $author_id * @property string $title * @property string $text * @property \Carbon\Carbon $created_at * @property \Carbon\Carbon $updated_at * @property-read \User $author * @property-read \Illuminate\Database\Eloquent\Collection|\Comment[] $comments */ class Post {} }
这在PHPStorm中给我带来了问题,但是软件在多个类定义中抱怨.幸运的是,一个选项可以直接写入模型文件:
PHP artisan ide-helper:models -W
如果需要调整行为,还有几个选项和设置可用,但这是它的要点.