访问由cakephp拥有的访问权限

时间:2016-08-09 14:37:20

标签: php associations cakephp-3.x

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

// 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,
];

}

// entity Relation 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'

}

请帮助谢谢

1 个答案:

答案 0 :(得分:0)

我只能修改位置控制器中的更改并选择数组

  

$ publicadd-> advertisements_imagenes [0] - > name_imagen = $ this-> request-> data [' advertisements_imagenes'] [' name_imagen'] [&# 39;名称'];

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);
}

谢谢