【问题标题】:Laravel 5.3 Entrust - Class name must be a valid object or a stringLaravel 5.3 Entrust - 类名必须是有效的对象或字符串
【发布时间】:2016-11-22 10:51:14
【问题描述】:

我目前正在为我的角色开发一个delete 函数。

每次我尝试删除时:

Class name must be a valid object or a string

我该如何解决这个问题?

【问题讨论】:

    标签: php laravel entrust


    【解决方案1】:

    将此函数添加到 Role.php 模型中

    <?php
    namespace App;
    
    use Illuminate\Support\Facades\Config;
    
    public function users()
        {
            return $this->belongsToMany(
                Config::get('auth.providers.users.model'), 
                Config::get('entrust.role_user_table'), 
                Config::get('entrust.role_foreign_key'), 
                Config::get('entrust.user_foreign_key'));
        }
    }
    

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      'model' =&gt; App\Users::class 更新config/auth.php 文件,因为vendor/zizaco/entrust/src/Entrust/Traits/EntrustRoleTrait.php 在$this->belongsToMany() 方法中指向Config::get('auth.model')

      【讨论】:

        【解决方案3】:

        @Tiến Đạo 说解决这个问题的最佳方法。但是如果你想要代码简单......

        use App\User;
        
        class Role extends EntrustRole
        {
           /**
           * Many-to-Many relations with the user model.
           *
           * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
           */
           public function users()
           {
              return $this->belongsToMany(User::class);
           }
        }
        

        【讨论】:

          猜你喜欢
          • 2016-06-17
          • 1970-01-01
          • 2023-01-13
          • 1970-01-01
          • 1970-01-01
          • 2017-08-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多