我的意思是……为什么?我正在使用模型定义查询,它实际上返回正确,但 PhpStorm 没有正确检测到我。
这工作得很好,但是在 IDE 中出现警告是一件很痛苦的事情。
我们希望提高代码质量(使用 Code Sniffer、PHPStan...)并将所有检查保留在警告级别,但这让我们陷入困境。
这是 IDE 自动代码分析的限制之一,因为它仅在运行时返回值才会具有您期望的类型。
唯一的方法是添加简短的 PHPDoc,如下所示
/** @var AdminUser $user **/
$user = AdminUser::query()-first();
return $user;
它将强制您的 IDE 使用变量类型,并且不会对运行时产生影响。
您也可以使用
/** @noinspection PhpIncompatibleReturnTypeInspection */
在
function xxx():xxx
行之前。
我也在 YouTrack 上问过。 他们说它永远不会被修复。