【发布时间】:2015-06-08 23:45:48
【问题描述】:
所以我刚开始使用 Laravel(使用 v5)和 Eloquent。我正在努力让一些基本的 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,它极大地帮助了将代码提示引入外墙,但对模型/构建者却没有。
有没有人可以解决这个问题?
【问题讨论】:
-
您是否设置了项目范围(在 phpstorm 中)?
-
@Kyslik 你能澄清一下你的意思吗?项目的设置就像我做过的任何其他项目一样(在涉足 Laravel 之前,我们主要使用 Silex)。其他一切都正常工作,只是模型和构建器上的这几项不正常。
-
@JoshJanusch 我也遇到了同样的问题,你找到解决办法了吗?
-
@Amitay 不,很遗憾,我没有取得任何进展。我刚刚放弃了,差不多。通过
__call()调用的东西太多。弄清楚 Laravel 中有哪些可用的东西真的很困难,尤其是在文档很差以及 Ottwell 记录方法参数的情况下。 -
@JoshJanusch 在做了更多研究后,我发现这是一个 phpstorm 错误。我检查了他们的最新版本,它仍然有错误。希望他们能尽快修复它...
标签: php laravel eloquent phpstorm