Wie speichere ich alle $ Daten aller speichern ($ Daten) mit CakePHP 3.3?
Ich habe einen kleinen Protokollcode (Umwandlung die $ Daten zu json und es auf VARCHAR, Benutzername und Datetime-Speicherung) zu implementieren, in dem AppModel :: before ($ data) (Kuchen 1,2)
Update:
ich habe Nutzung EventListenerInterface versucht:
namespace App\Model\Event;
use Cake\Event\EventListenerInterface;
use Cake\ORM\TableRegistry;
class LogModel implements EventListenerInterface
{
public function implementedEvents()
{
return [
'Model.beforeSave' => 'logSave'
];
}
public function logSave($event, $data = null, $options = null)
{
$eventTable = TableRegistry::get('Event');
$eventEntity = $eventTable->newEntity();
$eventEntity->event = json_encode($event);
$eventEntity->data = json_encode($data);
$eventEntity->className = get_class($event->__get('subject'));
//var_dump($eventEntity->className);exit();
$eventTable->save($eventEntity);
}
}
bootstrap.php:
//event global
use Cake\Event\EventManager;
use App\Model\Event\LogModel;
$logModel = new LogModel();
EventManager::instance()->on($logModel);
Aber dies führte zu einer unendlichen rekursiven Anrufe, weil ich die Daten aller speichert speichern (log) muss. Gibt es eine Möglichkeit, das zu vermeiden?
Und was genau ist das Problem mit in CakePHP 3 ähnlich zu tun? Momentan enthält Ihre Frage keine aktuelle Frage. – ndm
Wo ist das "BeforeSave-Äquivalent" in Cake3 für alle Tabellen (oder Entitäten)? – celsowm