Laravel 5 Laravel 5:morphedByMany中的动态类名

Laravel 5 Laravel 5:morphedByMany中的动态类名,laravel-5,Laravel 5,这在拉维5中可能吗 public function attachable($type) { // sample: $type = 'SomeContent'; return $this->morphedByMany($type::class, 'message_attachable'); } 可附加的公共函数($type) { //示例:$type='SomeContent'; 返回$this->morphedByMany($type::class,'message_attac

这在拉维5中可能吗

public function attachable($type) { // sample: $type = 'SomeContent'; return $this->morphedByMany($type::class, 'message_attachable'); } 可附加的公共函数($type) { //示例:$type='SomeContent'; 返回$this->morphedByMany($type::class,'message_attachable'); } 我得到这个错误:

Dynamic class names are not allowed in compile-time ::class fetch 编译时::类获取中不允许使用动态类名 编辑:

[2018-06-17 22:59:13]local.ERROR:编译时不允许使用动态类名::类获取{“userId”:1,“email”:system@gmail.com,“异常”:“[object](Symfony\\Component\\Debug\\exception\\FatalErrorException(代码:64):编译时不允许使用动态类名::在U:\\www\\prado247\\app\\Models\\Message\\Message.php:25上获取类 [stacktrace] #0{main} "}
您必须指定类路径:

可附加的公共函数($type)
{
//示例:$type='SomeContent';
返回$this->morphedByMany('App\\'。$type,'message_attachable');
}

您必须指定类路径:

可附加的公共函数($type)
{
//示例:$type='SomeContent';
返回$this->morphedByMany('App\\'。$type,'message_attachable');
}

类型是指类的字符串名称还是该实例的对象?如果它是一个实例,并且您想知道应该使用哪个类作为它的实例

return$this->morphedByMany(get_class($type),'message_attachable')


您可以阅读
get_class
的文档,但基本上它将实例的类作为一个字符串返回,Eloquent可以使用它。

类型是指类的字符串名称还是该实例的对象?如果它是一个实例,并且您想知道应该使用哪个类作为它的实例

return$this->morphedByMany(get_class($type),'message_attachable')


您可以阅读
get_class
的文档,但基本上它会将实例的类作为一个字符串返回,Eloquent可以使用。

谢谢您,Jonas,但是同样的错误:编译时::class fetch中不允许使用动态类名。不管怎样,有办法解决这个问题什么是stacktrace?
$type
的值是多少?如何调用
attachable()
?Stacktrace在Q中处于编辑状态。$type是一个字符串:SomeContent,它是类的名称。attachable()位于类消息中,在视图中使用时,会自动抛出此错误。所以我甚至没有调用这个方法。但是你删除了
::类
部分(从任何地方)?:)没有。。。很明显,我今天需要结束这一切-我现在在这里,我的大脑已经“愚蠢”了。。。谢谢:)现在可以用了谢谢你慢慢来Jonas,但同样的错误:编译时::类获取中不允许使用动态类名。不管怎样,有办法解决这个问题什么是stacktrace?
$type
的值是多少?如何调用
attachable()
?Stacktrace在Q中处于编辑状态。$type是一个字符串:SomeContent,它是类的名称。attachable()位于类消息中,在视图中使用时,会自动抛出此错误。所以我甚至没有调用这个方法。但是你删除了
::类
部分(从任何地方)?:)没有。。。很明显,我今天需要结束这一切-我现在在这里,我的大脑已经“愚蠢”了。。。谢谢:)现在可以工作了
[2018-06-17 22:59:13] local.ERROR: Dynamic class names are not allowed in compile-time ::class fetch {"userId":1,"email":"system@gmail.com","exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalErrorException(code: 64): Dynamic class names are not allowed in compile-time ::class fetch at U:\\www\\prado247\\app\\Models\\Message\\Message.php:25)
[stacktrace]
#0 {main}
"}