Я использую laravel 5.6 multi auth, где у меня 3 охранника, администраторы, профессионалы, пользователи.Я использую этот пакет https://github.com/richan-fongdasen/eloquent-blameable для полей selected_by, updated_by.
У меня есть таблица статей, в которой администраторы могут создавать сообщения, а также профессионалы могут создавать сообщения, которые просматривают внешние пользователи.
Я добавил приведенный ниже код в модель администратора, и всякий раз, когда я создаю сообщение, creared_by и updated_by (если я обновляюсь) заполняются зарегистрированным идентификатором администратора.
public function blameable()
{
return [
'user' => \App\Admin::class,
'createdBy' => 'user_id',
'updatedBy' => 'user_id'
];
}
Теперь, когда я создаю сообщение из раздела профессионалов, я хочу, чтобы созданный и обновленный был профессиональным идентификатором.Как этого добиться?
Нужно ли создавать отдельную модель в качестве профессиональных постов для той же таблицы и использовать
public function blameable()
{
return [
'user' => \App\Professional::class,
'createdBy' => 'user_id',
'updatedBy' => 'user_id'
];
}
Это важное поле, поскольку оно 1. Отображает имя автора длястатьи, которые заставляют пользователей знать, кто написал статью.2. Помогает перечислить все статьи, созданные профессионалом, в его панели инструментов.
У меня в голове разные идеи, например, я создал дополнительный столбец professional_id (nullable), который будет заполнен, если опубликован в разделе профессионалов, и установленк нулю, если опубликовано от администратора.
Каков наилучший способ справиться с этим?