【问题标题】:How to handle created_by and updated_by columns for multi auth guards in laravel 5.6如何在 laravel 5.6 中处理多身份验证保护的 created_by 和 updated_by 列
【发布时间】:2018-09-13 05:41:00
【问题描述】:

我正在使用 laravel 5.6 多重身份验证,我有 3 名守卫管理员、专业人员、用户。我将这个包https://github.com/richan-fongdasen/eloquent-blameable 用于created_by、updated_by 字段。

我有文章表,管理员可以在其中创建帖子,专业人士也可以创建帖子,供前端用户查看。

我已将以下代码添加到管理模型中,并且每当我创建帖子时,creared_by 和 updated_by(如果我更新)都会用登录的管理员用户 ID 填写。

public function blameable()
    {
        return [
            'user' => \App\Admin::class,
            'createdBy' => 'user_id',
            'updatedBy' => 'user_id'
        ];
    }

现在,当我从专业部分创建帖子时,我希望 createdBy 和 updatedBy 成为专业 ID。如何做到这一点?

我是否需要为同一张表创建一个单独的模型作为专业帖子并使用

public function blameable()
        {
            return [
                'user' => \App\Professional::class,
                'createdBy' => 'user_id',
                'updatedBy' => 'user_id'
            ];
        }

这是一个重要的领域,因为它 1. 显示文章的作者姓名,让用户知道文章的作者。 2. 帮助在他们的仪表板中列出专业人士创建的所有文章。

我脑子里有不同的想法,比如创建了一个额外的列 professional_id(nullable),如果从专业部分发布,它将被填充,如果从管理员发布,则设置为 null。

处理这个问题的最佳方法是什么?

【问题讨论】:

    标签: laravel-5 laravel-5.6


    【解决方案1】:

    您可以使用这个简单的库:

    use Culpa\Traits\Blameable;
    use Culpa\Traits\CreatedBy;
    use Culpa\Traits\DeletedBy;
    use Culpa\Traits\UpdatedBy;
    use Illuminate\Database\Eloquent\Model
    
    class Comment extends Model
    {
        use Blameable, CreatedBy, UpdatedBy;
    
        protected $blameable = array('created', 'updated', 'deleted');
    
        // Other model logic here
    }
    

    如何安装: https://github.com/nstapelbroek/culpa-laravel-5

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-28
      • 2020-05-10
      • 1970-01-01
      • 2018-10-24
      • 1970-01-01
      • 2018-09-01
      • 2013-12-11
      • 1970-01-01
      相关资源
      最近更新 更多