STI ::find() 在控制器中失败但在修补程序中成功
STI ::find() fails in controller but succeeds in tinker
我正在使用 MannikJ/laravel-sti
但以下代码在 tinker 和控制器中有不同的行为(假设 larevel-sti
文档中的定义, 类 Root
、Sub1
和 Sub2
):
Root::find(1234)
在 tinker 中,它正确地 returns Sub1
的一个实例。但是在控制器中,它 returns null
.
如果我将代码替换为:
,我将在控制器中获得正确的实例
Sub1::find(1234)
感谢维护者(参见 issue #1),我们发现问题在于我们在对象中使用了构造函数,但 laravel-sti
的 trait 也是如此。构造函数是 PHP 中的一个已知问题,具有特征…
我正在使用 MannikJ/laravel-sti
但以下代码在 tinker 和控制器中有不同的行为(假设 larevel-sti
文档中的定义, 类 Root
、Sub1
和 Sub2
):
Root::find(1234)
在 tinker 中,它正确地 returns Sub1
的一个实例。但是在控制器中,它 returns null
.
如果我将代码替换为:
,我将在控制器中获得正确的实例Sub1::find(1234)
感谢维护者(参见 issue #1),我们发现问题在于我们在对象中使用了构造函数,但 laravel-sti
的 trait 也是如此。构造函数是 PHP 中的一个已知问题,具有特征…