Wie zu verwenden beforeSave in CakePHP 3? $event, $entity und $Optionen müssen immer gefüllt?
Hab ich innerhalb "PostsTable.php" ich bin versucht, um form-Daten zur Behandlung von image-Dateien.
In CakePHP 2, die ich verwendet, um zu tun:
public function beforeSave($options = array())
{
if(!empty($this->data['Post']['picture']['name'])...
Jemand erklären könnte, in Kuchen 3:
beforeSave
Cake\ORM\Table::beforeSave(Event $event, Entity $entity, ArrayObject $options)
?
HINZUGEFÜGT
Ich versuche mit diesem code-snippet zu sehen, ob ich in der Lage bin, zu speichern Sie dieses Feld auf der Datenbank nur als test, aber es scheint beforeSave wird ignoriert:
public function beforeSave($options)
{
if(!empty($entity->pic1['name']))
{
$entity->pic1 = 'jus a test';
}
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beginnen Sie mit der definition einer Funktion.
Seit CakePHP aufrufen der Funktion automatisch, dies ist, wie es genannt wird, so bauen Sie Ihre Funktion identisch zu der definition einer Funktion:
Wenn Sie nicht sicher sind, welche Daten gesendet werden, verwenden Sie CakePHP ist
debug()
Funktion:Sobald Sie Ihre Daten in
$entity
es verwenden, um zu tun, was Sie tun möchten, auf Ihre Daten:Hier ist ein Beispiel, das ich verwendet habe:
Lassen Sie mich Lesen Sie das Handbuch für Sie:
Auch:
Alles zu tun, was Sie getan haben, bevor Sie in Cake2 können Sie einfach ändern
$entity
da Entitäten ersetzt, dieModel::$data
Eigenschaft.Wenn Sie nicht wissen, wie Ereignisse funktionieren über Sie zu Lesen. Auch der migration guide zu Lesen ist ein muss. Es listet alles, was sich verändert hat.
You can use the Model.beforeMarshal event to modify request data before it is converted into entities.
ich habe keine Ahnung, warum es nicht funktioniert für Sie.