协会 cakephp 拥有的访问权限

access owned by an association cakephp

这是我第一次 post 在这里,有人可以在这里帮助我想要访问该对象将看到我在我的控制器中分配一个值的关联,它存储在一个特定的字段中这里我的代码

// Controller Advertisements 

namespace App\Controller;

使用Cake\Filesystem\Folder; 使用 Cake\Filesystem\File;

class AdvertisementsController 扩展了 AuthController{

public function publicadd() {
    $publicadd = $this->Advertisements->newEntity(null,['associated' => ['AdvertisementsImagenes' 
            => ['fieldList' => 'name_imagen']]]);
    if($this->request->is('post')){
        $publicadd = $this->Advertisements->patchEntity($publicadd,$this->request->data,['associated' => ['AdvertisementsImagenes' 
            => ['fieldList' => 'name_imagen']]]);
        if ($this->request->data['advertisements_imagenes']['name_imagen']['error']==0) {
            $publicadd->AdvertisementsImagenes->name_imagen = $this->request->data['advertisements_imagenes']['name_imagen']['name'];
            new Folder(WWW_ROOT . 'anuncios',true,0755);
            $image = new File($this->request->data['advertisements_imagenes']['name_imagen']['tmp_name']);
            $image->copy(WWW_ROOT . 'anuncios/'.$this->request->data['advertisements_imagenes']['name_imagen']['name']);

        }
        $publicadd->id_user = $this->Auth->user('id_user');
        if ($this->Advertisements->save($publicadd)) {
            $this->Flash->success('Anuncio Publicado');
            $this->redirect(['controller' => 'Home','action' => 'index']);
        }  else {
            $this->Flash->error('Error al Publicar');
        }
    }
    $this->set('advertisements',$publicadd);
}

}

//实体广告

class Advertisement extends Entity{
protected $_accessible = [
    '*' => true,
    'id_advertisement' => false,
];

}

//实体关系AdvertisementImagen

class AdvertisementImagen extends Entity{
protected $_accessible = [
    'name_imagen' => true,
    'id_advertisement' => false,

];

}

//错误 注意事项(8):间接修改重载属性App\Model\Entity\Advertisement::$AdvertisementsImagenes无效[APP/Controller\AdvertisementsController.php,第25行]

// 上下文,代码

=> ['fieldList' => 'name_imagen']]]);
        if ($this->request->data['advertisements_imagenes']['name_imagen']['error']==0) {
            $publicadd->AdvertisementsImagenes->name_imagen = $this->request->data['advertisements_imagenes']['name_imagen']['name'];

$publicadd = object(App\Model\Entity\Advertisement) {

'id_categorie' => (int) 1,
'id_article' => (int) 1,
'id_article_size' => (int) 1,
'id_state_article' => (int) 1,
'title' => 'Pruebas  Mujer',
'price' => (float) 260,
'description' => 'Pruebas imagenes',
'advertisements_imagenes' => [
    (int) 0 => object(App\Model\Entity\AdvertisementImagen) {}
],
'[new]' => true,
'[accessible]' => [
    '*' => true
],
'[dirty]' => [
    'id_categorie' => true,
    'id_article' => true,
    'id_article_size' => true,
    'id_state_article' => true,
    'title' => true,
    'price' => true,
    'description' => true,
    'advertisements_imagenes' => true
],
'[original]' => [],
'[virtual]' => [],
'[errors]' => [],
'[invalid]' => [],
'[repository]' => 'Advertisements'

}

请帮忙谢谢

我只能修复我的位置控制器和 select 阵列

的变化

$publicadd->advertisements_imagenes[0]->name_imagen = $this->request->data['advertisements_imagenes']['name_imagen']['name'];

public function publicadd() {
    $publicadd = $this->Advertisements->newEntity();
    if($this->request->is('post')){
        $publicadd = $this->Advertisements->patchEntity($publicadd,$this->request->data,['associated' => ['AdvertisementsImagenes' 
            => ['accessibleFields' => ['name_imagen'=>true]]]]);
        if ($this->request->data['advertisements_imagenes']['name_imagen']['error']==0) {
            $publicadd->advertisements_imagenes[0]->name_imagen = $this->request->data['advertisements_imagenes']['name_imagen']['name'];
            new Folder(WWW_ROOT . 'anuncios',true,0755);
            $image = new File($this->request->data['advertisements_imagenes']['name_imagen']['tmp_name']);
            $image->copy(WWW_ROOT . 'anuncios/'.$this->request->data['advertisements_imagenes']['name_imagen']['name']);
        }
        $publicadd->id_user = $this->Auth->user('id_user');
        if ($this->Advertisements->save($publicadd)) {
            $this->Flash->success('Anuncio Publicado');
            $this->redirect(['controller' => 'Home','action' => 'index']);
        }  else {
            $this->Flash->error('Error al Publicar');
        }
    }
    $this->set('advertisements',$publicadd);
    $query_categories = $this->Categories->find('list');
    $this->set('categories',$query_categories);
    $query_articles = $this->Articles->find('list');
    $this->set('articles',$query_articles);
    $query_sizes = $this->ArticlesSizes->find('list');
    $this->set('sizes',$query_sizes);
    $query_articles_states = $this->StatesArticles->find('list');
    $this->set('states',$query_articles_states);
}

谢谢