В настоящее время я пытаюсь заставить мое приложение переключать источник данных в зависимости от того, будет ли он писать или читать из базы данных. К несчастью, я просто не могу заставить его работать. Я предполагаю, что мне просто не хватает чего-то маленького. Я создал EventListener, чтобы поймать событие beforeSave для переключения источника данных при записи. Но фактический переключатель не работает неудачно.
Я не знаю, в CakePHP2 он работал как шарм: -D
Вот мой текущий слушатель:
<?php namespace MasterSlaveManager; use Cake\Event\EventListenerInterface; use Cake\Event\Event; use Cake\Datasource\ConnectionManager; use Cake\Database\Query; class MasterSlaveManager implements EventListenerInterface { public function implementedEvents() { return [ 'Model.beforeSave' => 'beforeSave', 'Model.afterSave' => 'afterSave', ]; } public function beforeSave(&$event) { $event->subject()->connection(ConnectionManager::get('master')); } public function afterSave() { } }
Я даже не уверен, есть ли у меня сейчас, если я работаю в правильном направлении.