Laravel 5.6-类名必须是有效的对象或字符串
我的Laravel应用程序引发下一个错误: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
(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();