Salut alors j'ai fait un application ou peut creer des galleries qui contiennent des image, ce que j'aimerai c'est que quand je recupere mes gallerie je puissent savoir le nombre d'image qu'il y a la dedans.
J'ai donc deux tables :

<?php
namespace App\Model\Table;

use Cake\ORM\Table;
use Cake\Validation\Validator;

class GalleriesTable extends Table{

    public function initialize(array $config) {
        $this->hasMany('GallerieImgs', [
            'foreignKey' => 'gallerie_id',
            'bindingKey' => 'id',
        ]);
    }

    public function validationDefault(Validator $validator) {
        $validator->requirePresence('name')
            ->requirePresence('slug')
            ->notEmpty('name')
            ->notEmpty('slug')
            ->add('slug', 'custom', [
                'rule' => ['custom', '#^[a-zA-Z0-9_-]+$#'],
                'message' => 'vous ne pouvez pas entrer de caractere spéciaux'
            ]);

        return $validator;
    }

}
<?php
namespace App\Model\Table;

use Cake\ORM\Table;
use Cake\Validation\Validator;

class GallerieImgsTable extends Table{

    public function initialize(array $config) {
        $this->hasOne('Galleries', [
            'foreignKey' => 'id',
            'bindingKey' => 'gallerie_id'
        ]);
        $this->addBehavior('CounterCache', [
            'Galleries' => ['gallerieimg_count']
        ]);
    }

    public function validationDefault(Validator $validator) {
        $validator->requirePresence('img_file')
            ->requirePresence('gallerie_id')
            ->notEmpty('img_file')
            ->notEmpty('gallerie_id')
            ->add('img_file', 'upload', [
                'rule' => 'uploadError',
                'message' => "Erreur lors du téléchargement du fichier",
            ])
            ->add('img_file', 'extension', [
                'rule' => ['extension', ['jpeg', 'jpg', 'png']],
                'message' => 'Le fichier doit etre au format PNG ou JPG',

            ]);

        return $validator;
    }

}

J'ai aussi rajouter une colonne gallerieimg_count dans la table galleries de ma base de données, mais ca ne marche pas j'ai surement dit oublier quelque chose.

1 réponse


Xeta
Réponse acceptée

Hello,
Ce n'est pas une relation hasOne, mais belongsTo qui faut dans ta table GallerieImgs.