Как обрабатывать столбцы create_by и updated_by для нескольких защитников аутентификации в laravel 5.6 - PullRequest
0 голосов
/ 07 июня 2018

Я использую 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), который будет заполнен, если опубликован в разделе профессионалов, и установленк нулю, если опубликовано от администратора.

Каков наилучший способ справиться с этим?

1 Ответ

0 голосов
/ 13 сентября 2018

Вы можете использовать эту простую библиотеку:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...