【发布时间】: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