Laravel 5.6-类名必须是有效的对象或字符串

Laravel 5.6-类名必须是有效的对象或字符串,laravel,Laravel,我的Laravel应用程序引发下一个错误: (1/1) Error Class name must be a valid object or a string in HasRelationships.php line 656 我必须说,现在这个项目是在一个共享主机,但这是唯一的一部分,没有工作在所有。这是HTML文件: @extends('layouts.app')) @节(“内容”) 仪表板管理 过滤孔 奥德纳马内拉酒店 系统注册用户 # 名义 科雷奥 选择素 @foreach($user

我的Laravel应用程序引发下一个错误:

(1/1) Error

Class name must be a valid object or a string
in HasRelationships.php line 656
我必须说,现在这个项目是在一个共享主机,但这是唯一的一部分,没有工作在所有。这是HTML文件:

@extends('layouts.app'))
@节(“内容”)
仪表板管理
过滤孔
奥德纳马内拉酒店
系统注册用户
#
名义
科雷奥
选择素
@foreach($users作为$user)
{{$user->id}
{{$user->name}
{{$user->email}
@endforeach
{{$users->links()}
@端部
这是我的控制器:


看来您使用的是Spatiale/Laravel权限,如果您的应用程序在development server上运行,我猜您的live server中的php版本低于此软件包所需的7.0版本

您应该使用phpinfo()检查您的工作php版本;在文件上,将浏览器指向该文件,这将显示Web服务器使用的php版本。 你可以写下一个包含以下内容的info.php文件

<?php
phpinfo();

正如@erubiel和@farid silva所指出的,您可能需要在生产中解决PHP版本的问题

然而,最直接的问题是
Spatie\Permission\Traits\HasRoles::roles
调用
illumb\Database\elount\Concerns\HasRelationships::morphotomy

  • 相关的
  • ,以及
  • foreignKeyPivot
全部设置为
null

如果查看,这些值来自Laravel配置,即:

  • permission.models.role
  • 权限。表\u名称。模型\u具有\u角色
    ,以及
  • permission.column\u names.model\u morph\u key

因此,可能值得仔细检查您的配置,即
权限
值集,以检查这些值是否在生产中正确定义。

服务器上的php版本?您是否可以共享
App\User
的模型?我想知道你是否在关系中使用了类似于
Role::class
的东西。如果我没有错的话,在PHP5.5之前它是不受支持的。你能发布php和laravel版本以供参考吗?添加了用户模型!我的服务器信息显示如下:
5.6.37
这很奇怪,我的cpanel的PHP版本选择器说我使用的是
7.1
版本,为什么?这是主要错误,但看看错误堆栈,哪一行触发了它?您是否看到在堆栈上创建的任何文件?如果您确认在生产环境中运行的是7.0之前的PHP,并且无法更改,则可以从
spatie/laravel permission
的2.x版移回
1.x版。从github repo来看,它似乎仍在积极维护。Im使用PHP7.1。我只是看了看
<?php
phpinfo();