Closed andreivadimovich closed 7 years ago
Hi, I'll check it.
Странно, только что проверил на последней версии комментариев, это код работает:
'comment' => [
'class' => 'yii2mod\comments\Module',
'controllerMap' => [
'default' => [
'class' => 'yii2mod\comments\controllers\DefaultController',
'on afterDelete' => function ($event) {
die("afterDelete");
},
],
],
],
Не могу разобраться. Давайте я расскажу подробнее как я разложил конфиги. Это у меня в backend/config/main.php ` 'controllerMap' => [ 'comments' => 'yii2mod\comments\controllers\ManageController', // Also you can override some controller properties in following way: 'comments' => [ 'class' => 'yii2mod\comments\controllers\ManageController', 'searchClass' => [ 'class' => 'yii2mod\comments\models\search\CommentSearch', 'pageSize' => 25 ],
'accessControlConfig' => [
'class' => 'yii\filters\AccessControl',
'rules' => [
[
'allow' => true,
'roles' => ['administrator'],
],
],
],
],
],`
А это в common/config/main.php:
'controllerMap' => [ 'default' => [ 'class' => 'yii2mod\comments\controllers\DefaultController', 'on beforeCreate' => ['frontend\events\BonusEvents', 'handleCheckFiveReview'], 'on afterCreate' => ['frontend\events\BonusEvents', 'handleAfterFirstComment'], 'on afterDelete' => function ($event) { die("afterDelete"); }, ] ]
При этом - в админке комментарий удаляется, а если удалять через фронт (по ссылке удалить) то пишет - Forbidden (это от того что роль у меня не admin - а administrator видимо).
Я правильно понимаю что событие afterDelete должно вызываться и при удалении из фронтенда и из бекенда?
Можете подсказать, как мне переопределить событие afterDelete ? Или может быть знаете альтернативный вариант.Мне нужно при удалении комментария удалять все лайки за этот комментарий.
Здравствуйте, вы можете просто сделать для лайков внешний ключ и они будут автоматически удаляться. Событие afterDelete только вызывается при удалении через фронтенд. Вы можете переопределить контроллер и написать свою логику. Но я бы добавил просто внешний ключ
15.09.2017 12:09 пользователь "Andrei" notifications@github.com написал:
Не могу разобраться. Давайте я расскажу подробнее как я разложил конфиги. Это у меня в backend/config/main.php ` 'controllerMap' => [ 'comments' => 'yii2mod\comments\controllers\ManageController', // Also you can override some controller properties in following way: 'comments' => [ 'class' => 'yii2mod\comments\controllers\ManageController', 'searchClass' => [ 'class' => 'yii2mod\comments\models\search\CommentSearch', 'pageSize' => 25 ],
'accessControlConfig' => [ 'class' => 'yii\filters\AccessControl', 'rules' => [ [ 'allow' => true, 'roles' => ['administrator'], ], ], ], ],
],`
А это в common/config/main.php: 'controllerMap' => [ 'default' => [ 'class' => 'yii2mod\comments\controllers\DefaultController', 'on beforeCreate' => ['frontend\events\BonusEvents', 'handleCheckFiveReview'], 'on afterCreate' => ['frontend\events\BonusEvents', 'handleAfterFirstComment'], 'on afterDelete' => function ($event) { die("afterDelete"); }, ] ]
При этом - в админке комментарий удаляется, а если удалять через фронт (по ссылке удалить) то пишет - Forbidden (это от того что роль у меня не admin
- а administrator видимо).
Я правильно понимаю что событие afterDelete должно вызываться и при удалении из фронтенда и из бекенда?
Можете подсказать, как мне переопределить событие afterDelete ? Или может быть знаете альтернативный вариант.Мне нужно при удалении комментария удалять все лайки за этот комментарий.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/yii2mod/yii2-comments/issues/76#issuecomment-329726280, or mute the thread https://github.com/notifications/unsubscribe-auth/AHoL21x1AXi_s-qd__I_Df7eHLaKzvYyks5sij66gaJpZM4PTG35 .
Спасибо за ответы! Все-таки переопределил контроллер.
yii2 advanced (2.0.10-dev) "yii2mod/yii2-comments": "dev-master"
Пишу в /common/config/main.php ` 'modules' => [
beforeCreate , afterCreate - работают. А вот afterDelete не отрабатывает. Как быть ?