Bonjour à tous,
ça fait un petit moment que je n'ai pas touché à CakePHP et je me retrouve avec une erreur que je ne parviens pas à comprendre.
Au niveau d'un de mes controller, j'au une fonction add classique :
public function add($id = NULL)
{
$gallery = $this->Galleries->newEntity();
if ($this->request->is('post')) {
$data = $this->request->data;
(isset($id)) ? $gallery->id = $id : '';
$gallery = $this->Galleries->patchEntity($gallery, $data);
if ($this->Galleries->save($gallery)) {
$this->Flash->success(__('La gallerie a bien été sauvegardée'));
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('Une ou plusieurs erreurs se sont produites. Merci de les corriger avant de resoumettre le formulaire'));
}
} else {
$gallery->id = $this->Galleries->getDraftId($this->Galleries, ['category_id' => 1]);
}
$categories = $this->Galleries->Categories->find('list', ['limit' => 200]);
$this->set(compact('gallery', 'categories'));
$this->set('_serialize', ['gallery']);
}
Lorsque je souhaite sauvegarder l'entity, j'ai une erreur du type Maximum function nesting level of '100' reached, aborting!.
Après vérification au niveau de la fonction, je m'apercois d'une petite bizarrerie lorsque je fais l'appel à patchEntity.
En effet, lorsque je debug $gallery après le patchEntity, je me retrouve avec ça :
object(App\Model\Entity\Gallery) {
'id' => '2',
'category_id' => (int) 2,
'slug' => 'azeazeaz',
'title' => object(App\Model\Entity\Gallery) {
'id' => '2',
'category_id' => (int) 2,
'slug' => 'azeazeaz',
'title' => object(App\Model\Entity\Gallery) {
'id' => '2',
'category_id' => (int) 2,
'slug' => 'azeazeaz',
'title' => object(App\Model\Entity\Gallery) {
'id' => '2',
'category_id' => (int) 2,
'slug' => 'azeazeaz',
'title' => object(App\Model\Entity\Gallery) {
'id' => '2',
'category_id' => (int) 2,
'slug' => 'azeazeaz',
'title' => object(App\Model\Entity\Gallery) {
'id' => '2',
'category_id' => (int) 2,
'slug' => 'azeazeaz',
'title' => object(App\Model\Entity\Gallery) {
'id' => '2',
'category_id' => (int) 2,
'slug' => 'azeazeaz',
'title' => object(App\Model\Entity\Gallery) {
'id' => '2',
'category_id' => (int) 2,
'slug' => 'azeazeaz',
'title' => object(App\Model\Entity\Gallery) {
'id' => '2',
'category_id' => (int) 2,
'slug' => 'azeazeaz',
'title' => object(App\Model\Entity\Gallery) {
'id' => '2',
'category_id' => (int) 2,
'slug' => 'azeazeaz',
'title' => object(App\Model\Entity\Gallery) {
// to be continue...
J'avoue ne pas comprendre pourquoi j'ai ça...
Une idée ?
Merci d'avance,
Romain