我正在使用laravel 5.6 multi auth,我有3名警卫管理员,专业人士,用户。我正在将此包https://github.com/richan-fongdasen/eloquent-blameable用于created_by,updated_by fields。
我有文章表,管理员可以在其中创建帖子,专业人员也可以创建一个帖子,由前端用户查看。
我已将以下代码添加到管理模型中,每当我创建帖子时,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.帮助列出专业人员在其仪表板中创建的所有文章。
我脑子里有不同的想法,比如创建了一个额外的专栏:special_id(可空),如果从专业部分发布,将被填充,如果从管理员发布,则设置为null。
处理此问题的最佳方法是什么?
答案 0 :(得分:0)
您可以使用这个简单的库:
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
}