Событие после сортировки
Нередко бывает когда после сортировки необходимо выполнить какую то задачу. Многие разработчики для этого обращаются к afterSave
методу модели, но это неправильное решение, так как оно может нести большие нагрузки на производительность.
Простое решение сделать что то сразу после сортировки, переопределить метод onReorder
в вашем контроллере. Внутри метода сначала вызовем стандартный метод поведения onReorder
, а затем можем делать всё то что нам нужно.
Пример:
plugins\authorName\pluginName\controllers\Items.php
class Items extends Controller
{
public $implement = [
\Backend\Behaviors\FormController::class,
\Backend\Behaviors\ListController::class,
\Backend\Behaviors\ReorderController::class,
];
public $formConfig = 'config_form.yaml';
public $listConfig = 'config_list.yaml';
public $reorderConfig = 'config_reorder.yaml';
public function __construct()
{
// ...
}
public function onReorder()
{
$this->asExtension('ReorderController')->onReorder();
// Здесь код который должен выполняться после сортировки
}
}
Например, после сортировки мы хотим очистить кеш:
public function onReorder()
{
$this->asExtension('ReorderController')->onReorder();
Cache::forget('key_name');
}
*** Войдите чтобы писать комментарии.