Es ist das erste Mal, dass ich hier posten, kann mir hier jemand möchte helfen, das Objekt zuzugreifen, wird mein Associacion Ich habe in meinem Controller sehen einen Wert zuzuweisen und diese hier in einem bestimmten Bereich gespeichert Mein CodeZugang von einem Verein im Besitz CakePHP
// Controller Advertisements
namespace App\Controller;
Verwenden Cake \ Filesystem \ Ordner; verwenden Sie Cake \ Filesystem \ File;
Klasse AdvertisementsController erweitert 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);
}
}
// Entität Werbung
class Advertisement extends Entity{
protected $_accessible = [
'*' => true,
'id_advertisement' => false,
];
}
// Einheit Relation AdvertisementImagen
class AdvertisementImagen extends Entity{
protected $_accessible = [
'name_imagen' => true,
'id_advertisement' => false,
];
}
// Fehler Hinweis (8): Indirekte Änderung von überladener Eigenschaft App \ Modell \ Entity \ Werbung :: AdvertisementsImagenes $ hat keine Auswirkung [APP/Regler \ AdvertisementsController.php, Zeile 25]
// Kontext, Code
=> ['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'
}
bitte helfen Danke
Sie sollten Ihre Beziehungen, in jedem Fall erklären versuchen '$ publicadd-> advertisements_imagenes-> etc ...' Sie sollten Kleinbuchstaben verwenden unterstrichen, wenn Sie ein Objekt zugreifen (oder ein Array von Entitäten) innerhalb einer anderen Entität. Verwenden Sie stattdessen CamelCase, wenn Sie über ein anderes Modell auf ein Modell zugreifen. – arilia
Bitte könnten Sie erklären, ein wenig besser nicht Vielen Dank verstehen –
einfach nicht '$ publicadd-> AdvertisementsImagenes->' aber '$ publicadd-> advertisements_imagenes' (oder so ähnlich, wie ich jetzt nicht, wie man richtig Ihre Modelle pluralize und auch ich nicht jetzt die Beziehungen zwischen den Modellen). Lesen Sie [hier] (http://book.cakephp.org/3.0/en/intro/conventions.html) über Kuchenkonventionen. Insbesondere Lese über Entität Namenskonventionen – arilia