如何在迭代期间注释 Laravel 集合元素

Posted

技术标签:

【中文标题】如何在迭代期间注释 Laravel 集合元素【英文标题】:How to annotate Laravel Collection elements during iteration 【发布时间】:2021-10-15 19:55:50 【问题描述】:

我正在考虑如何在 phpStorm 中注释类型。我相信 PhpStorm 正在使用 Psalm 来解析类型,但我在这里找不到如何注释类型以获取建议:

我的应用程序中的$row 将始终是Collection 对象,我想在此处用注释标记它。

有人知道如何实现吗?

    /**
     * @param Collection $rows
     */
    public function collection(Collection $rows)
    
        foreach ($rows as $row)
        
            dump($row->); // $row is also Collection object
        
    

【问题讨论】:

检查laravel ide helper。 见blog.jetbrains.com/phpstorm/2021/07/phpstorm-2021-2-release/… -- 你需要使用通用的 + @template 东西(另外,必须启用 Psalm 插件(即使它不运行它,它只是用来支持语法)) 【参考方案1】:

你可以像这样标记 var 类型:

/**
 @var $row Collection
**/
dump($row->);

https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000701884-Using-var-type-hinting-with-properties-instantiated-by-Traits

【讨论】:

我不认为$row 应该是Collection$rows 是。

以上是关于如何在迭代期间注释 Laravel 集合元素的主要内容,如果未能解决你的问题,请参考以下文章

如何在“每次”迭代期间附加列表时保持列表的长度不变

Chapter7 迭代器

如何在转换集合到映射期间计算集合中的相同单词

如何获取 Laravel 集合中元素的索引

jquery如何遍历一个html页面标题生成目录

Mongodb Cursor,如何遍历巨大的集合?