所以我刚刚开始与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.
您可以使用此命令为所有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
如果需要调整行为,还有几个选项和设置可用,但这是它的要点.