gpt4 book ai didi

laravel - 在 voyage admin 上调用字符串上的成员函数 relationLoaded()

转载 作者:行者123 更新时间:2023-12-02 20:38:27 27 4
gpt4 key购买 nike

我从 here 成功安装了 voyager admin

在我的客户端页面上,我创建了一个源自 auth 的自定义注册。我可以成功注册用户。

安装 voyager admin 后,我在客户的注册表单上添加了一个新用户。然后,当我尝试访问 http://localhost:8000/admin 时,出现了错误,如图所示。

enter image description here

下面是第 53 行的图像:

enter image description here

下面是 VoyagerUse.php 的完整代码

<?php

namespace TCG\Voyager\Traits;

use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
use TCG\Voyager\Facades\Voyager;
use TCG\Voyager\Models\Role;

/**
* @property \Illuminate\Database\Eloquent\Collection roles
*/
trait VoyagerUser
{
public function role()
{
return $this->belongsTo(Voyager::modelClass('Role'));
}

/**
* Check if User has a Role(s) associated.
*
* @param string|array $name The role to check.
*
* @return bool
*/
public function hasRole($name)
{
if (!$this->relationLoaded('role')) {
$this->load('role');
}

return in_array($this->role->name, (is_array($name) ? $name : [$name]));
}

public function setRole($name)
{
$role = Voyager::model('Role')->where('name', '=', $name)->first();

if ($role) {
$this->role()->associate($role);
$this->save();
}

return $this;
}

public function hasPermission($name)
{
if (!$this->relationLoaded('role')) {
$this->load('role');
}

if (!$this->role->relationLoaded('permissions')) {
$this->role->load('permissions');
}

return in_array($name, $this->role->permissions->pluck('key')->toArray());
}

public function hasPermissionOrFail($name)
{
if (!$this->hasPermission($name)) {
throw new UnauthorizedHttpException(null);
}

return true;
}

public function hasPermissionOrAbort($name, $statusCode = 403)
{
if (!$this->hasPermission($name)) {
return abort($statusCode);
}

return true;
}
}

最佳答案

正如 VoyagerUser 第 53 行中所述:

if(!$this->role->relationLoaded('permissions')){ ...

这里的角色被视为关系而不是字段:)

和错误

Call to a member function relationLoaded() on string

表示您在用户模型中具有作为属性的角色

因此,您所要做的就是将角色属性重命名为其他名称,一切都会完美运行;)

关于laravel - 在 voyage admin 上调用字符串上的成员函数 relationLoaded(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46491081/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com