Bonjour,
je découvre Cakephp 3... Et je voulais savoir comment ça se passe maintenant par rapport à la version 2. au niveau du "aftersave".
Dans la version précédente pour uploader l'avatar via le modèle ... il suffisait de faire :
dans la version 2 :
public function afterSave($created, $options = Array()){
debug($this->data[$this->alias]['avatarf']);
/*le code traitement*/
}
/*
Pour obtenir le résultat :
\app\Model\Blog.php (line 108)
array(
'name' => 'img-site-profil.jpg',
'type' => 'image/jpeg',
'tmp_name' => 'C:\wamp\tmp\phpBB57.tmp',
'error' => (int) 0,
'size' => (int) 122285
)
*/
Seulement maintenant je sais pas comment on fait pour récupérer les données postées via le formulaire.
Questions :
1- comment fait-on pour récupérer les données postées via le formulaire ? (ex: $this->data[Model]['avatarf'] "cakephp2")
2- la méthode est-elle toujours bonne ? (c'est à dire de gérer ça, dans le "PostsTable comme dans la version 2)
ou le mieux est de gérer tout via le controller via l'appel à des fonctions...
Je fais :
public function afterSave(Event $event, Entity $entity ,ArrayObject $options){
debug($entity);
die();
}
object(App\Model\Entity\Post) {
'name' => 'le news mane',
'content' => '',
'category_id' => (int) 1,
'slug' => 'le-news-mane',
'type' => 'blog',
'user_id' => '1',
'created' => '2019-12-28 02:06:01',
'modified' => '2019-12-28 02:06:01',
'online' => '0',
'[new]' => true,
'[accessible]' => [
'category_id' => true,
'name' => true,
'slug' => true,
'content' => true,
'created' => true,
'modified' => true,
'online' => true,
'category' => true,
'avatar' => true
],
'[dirty]' => [
'name' => true,
'content' => true,
'category_id' => true,
'slug' => true,
'type' => true,
'user_id' => true,
'created' => true,
'modified' => true,
'online' => true
],
'[original]' => [],
'[virtual]' => [],
'[hasErrors]' => false,
'[errors]' => [],
'[invalid]' => [],
'[repository]' => 'Posts'
}
mais ce n'est pas les données du formulaire ... ?
Merci d'avance
Tu devrais l'avoir dans $this->request->data['avartarf']
Plus d'info dans la doc des formulaires : Form - Creating File Inputs
Si je fait $this->request->data['avartarf'] . J'ai cette erreur la :
Undefined property request
. You have not defined the request
association on App\Model\Table\PostsTable
.