PhpStorm:{Model}和hastinmestamp定义相同的属性时间戳(Laravel)

PhpStorm:{Model}和hastinmestamp定义相同的属性时间戳(Laravel),laravel,phpstorm,Laravel,Phpstorm,PhpStorm版本2020.3显示my Laravel模型中的$timestamps属性错误: {Model}和hastinmestamp定义相同的属性时间戳 这似乎是一个PHPStorm bug 如果它困扰您,您可以更改public$timestamps=false到 public function usesTimestamps() : bool{ return false; } 这是一个bug,它是在PhpStorm版本中引入的 无法禁用警告,因为它是注释器检查。我也不建议仅仅为

PhpStorm版本2020.3显示my Laravel模型中的
$timestamps
属性错误:

{Model}和hastinmestamp定义相同的属性时间戳


这似乎是一个PHPStorm bug

如果它困扰您,您可以更改
public$timestamps=false

public function usesTimestamps() : bool{
    return false;
}

这是一个bug,它是在PhpStorm版本中引入的

无法禁用警告,因为它是注释器检查。我也不建议仅仅为了修复此警告而更改代码,因为这是一个IDE错误,将在他们的补丁中解决。如果它真的没有引起任何破坏性的副作用,那就等着补丁发布吧


更新
此错误已在PhpStorm中修复。

非常简单,添加(bool)或(boolean),look:public$timestamps=(boolean)false

这已在PHPStrom 2020.3.1预览版上修复

这是一个PhpStorm错误,我用类phpdoc上的define as属性修复了它

像这样:


您还可以更新PhpStorm。

我认为时间戳是一个保留关键字,您不能使用它。@AbdullahAlMamun,在Laravel中,模型中的public$timestamps变量告诉您,模型不使用created_at和updated_at-默认情况下$timestamps=true。它不是保留关键字。我也有同样的问题,我认为这是上一次更新中的一个bug,它与vendor/laravel/framework/src/illumb/Database/elount/Concerns/hastinmestamps.php匹配。然而,它不是一个拦截器,所有的工作都正常,至少在我的情况下。@Strabek,是的,你是对的。也许这是一个phpstorm错误。我认为这不是一个phpstorm问题,而是一个Laravel问题。如果代码的其余部分不直接访问该属性,那么您的解决方案可能是有效的,因为它声明为public。在构造中重新分配属性感觉更糟,但可能更可靠?@hatef是对的,你不应该更改代码,我只是觉得它在视觉上很烦人,实际上我不得不恢复,因为我当前的xdebug版本与PHPStorm版本不兼容,而且#在#Johan#我不确定我是因为警告才再次这么做的,但没有真正的好处,而且我也没有看到任何“超级”负面,因为这种方法是有效的public@Johan,它一定是PhpStorm错误。在PHP中,类不能使用trait并重写该trait的属性。但事实并非如此,重写的是使用trait的类的子类。“这是完全合法的。”德拉门托谢谢你澄清这一点。如果一个更新修复了这个问题,这表明谁该受责备:)第一次我什么也不做就解决了一个问题,而没有花几个小时寻找答案!ThankshpStorm在智能感知和重构能力方面绝对是无与伦比的,但它确实让我感到被束缚住了,因为每次更新似乎都会引入这样一个bug,我不得不等待它们修复:(产生错误:常量表达式中包含无效操作。。。