Задать вопрос

Запись в лог из action контроллеров?

Только изучаю Yii и ООП, до этого программировал обычными функциями, поэтому хотел спросить о правильности такой реализации.
Я хочу записывать в лог разные действия юзеров на сайте, например при добавление коммента записать в лог.
Создал модель Log
* @property integer $id
* @property integer $created_at
* @property string $category
* @property integer $user_id
* @property string $username
* @property string $event
и в ней метод
public static function addLog($model)
    {
        if(Yii::$app->user->isGuest)
            return false;

        $log = new Log();
        $log->created_at = time();
        $log->user_id = Yii::$app->user->id;
        $log->username = Yii::$app->user->identity->username;
        $log->category = $model['category'];
        $log->event = $model['event'];
        $log->save();
    }


в нужных экшинах контроллеров вызываю так
if ($model->load(Yii::$app->request->post()))
        { 
            if($model->save())
            {
                //  Отправляем в лог
                \app\modules\log\models\log::addLog(
                    [
                        'category' => 'comments',
                        'event' => 'Добавлен новый комментарий: ' . $model->post
                    ]
                );


или это все надо делать по другому?
  • Вопрос задан
  • 288 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@sunrails
Рассмотрите как хороший вариант www.yiiframework.com/doc-2.0/guide-concept-events.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы