【问题标题】:How to enable autocomplete for Laravel Resources in PhpStorm?如何在 PhpStorm 中为 Laravel 资源启用自动完成功能?
【发布时间】:2017-10-03 04:47:52
【问题描述】:

Laravel 5.5 有一个新的 API 资源特性,它很好地将调用重定向到模型属性(如 $this->id)。我使用ide-helper:models 为模型生成phpdocs,这些模型对所有模型属性进行类型提示。但是,这不适用于资源,我得到“通过魔术方法访问的字段”波浪线。有没有办法在不复制的情况下将其指向模型的 phpdoc?

【问题讨论】:

  • 为什么必须在 PHP 代码中获取资源的属性?我认为您误解了 API 资源的用途。 API 资源旨在将模型转换为简单的对象以返回 HTTP 响应。
  • 如何在不获取属性的情况下转换属性?我的 toArray 方法看起来像 return ['id' => $this->id, 'name' => $this->name]; 我没有自动完成 $this 属性
  • 哦,对不起。那我误解了你的问题。我添加了一个答案。

标签: php laravel phpstorm laravel-5.5


【解决方案1】:

您可以使用 @mixin

这是一个示例,如果您想要 用户资源 中的 用户模型 中的属性/phpdocs,那么就这样做

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\Resource;

/**
 * Class User
 *
 * @mixin \User
 * */
class User extends Resource
{
    public function toArray($request)
    {
        return [
            'id' => $this->id,
            'name' => $this->name,
            'email' => $this->email,
            'created_at' => $this->created_at,
            'updated_at' => $this->updated_at,
        ];
    }
}

【讨论】:

  • 天哪!今天刚遇到这个,哇!真是个救世主!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-01
  • 1970-01-01
  • 2011-11-19
  • 2012-06-26
  • 1970-01-01
相关资源
最近更新 更多