Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/08/2016, 11:36
BlackJccl1
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años, 1 mes
Puntos: 2
Guardar Varios Id en tabla relacionada Cakephp3

Hola a todos como estan veran tengo el siguiente modelo con las tablas Advertisements y AdvertisementsImagenes aqui sus modelos
Código PHP:
Ver original
  1. class AdvertisementsTable extends Table{
  2. public function initialize(array $config) {
  3.     parent::initialize($config);
  4.     $this->table('advertisements');
  5.     $this->displayField('id_advertisement');
  6.     $this->primaryKey('id_advertisement');
  7.     $this->entityClass('App\Model\Entity\advertisement');
  8.  
  9.     $this->hasMany('AdvertisementsImagenes',[
  10.         'className' => 'AdvertisementsImagenes',
  11.         'foreignKey' => 'id_advertisement',
  12.     ]);
  13.   }

Tabla AdvertisementsImagenes

Código PHP:
Ver original
  1. class AdvertisementsImagenesTable extends Table{
  2.  
  3. public function initialize(array $config) {
  4.     parent::initialize($config);
  5.     $this->table('advertisements_imagenes');
  6.     $this->displayField('id_advertisement');
  7.     $this->primaryKey('id_advertisement');
  8.     $this->entityClass('App\Model\Entity\AdvertisementImagen');
  9.  
  10.     $this->belongsTo('Advertisements',[
  11.         'foreignKey' => 'id_advertisement',
  12.         'joinType' => 'INNER'
  13.     ]);
  14.     }
  15.   }

Pues bien bien es una relacion de uno a muchos y pues en mi tabla advertisements_imagenes guardo el id de la tabla advertisements, pues cuando hago el registro para un registro lo hace muy bien ahora el tema esta cuando son varias imagenes que están relacionadas a un solo id para lo cual intente hacer esto mi controlador AdvertisementsController.php
Código PHP:
Ver original
  1. public function publicadd() {
  2.     $publicadd = $this->Advertisements->newEntity();
  3.     if($this->request->is('post')){
  4.         $publicadd = $this->Advertisements->patchEntity($publicadd,$this->request->data,['associated' => ['AdvertisementsImagenes']]);
  5.         $images = $this->request->data['advertisements_imagenes']['name_imagen'];
  6.         foreach ($images as $image){
  7.             $publicadd->advertisements_imagenes[0]->name_imagen = $image['name'];
  8.             new Folder(WWW_ROOT . 'anuncios',true,0755);
  9.             $mv = new File($image['tmp_name']);
  10.             $mv->copy(WWW_ROOT . 'anuncios/'.$image['name']);
  11.         }
  12.         $publicadd->id_user = $this->Auth->user('id_user');
  13.         if ($this->Advertisements->save($publicadd)) {
  14.             $this->Flash->success('Anuncio Publicado');
  15.             $this->redirect(['controller' => 'Home','action' => 'index']);
  16.         }  else {
  17.             $this->Flash->error('Error al Publicar');
  18.         }
lo que me falta es guardar los nombres de las imagenes en la BD que estan realcionadas a un id ayuda por favor Graciassss