i have 2 entities, site
, sitesmetadata
want relate hasmany , belongsto association.
i created per cakephp 3.0 book reason it's not generating or saving association.
here relationships
sitestable:
$this->hasmany('sitesmetadata', [ 'foreignkey' => 'site_id', 'dependent' => true ]);
and sitesmetadatatable (auto generated baking model):
$this->belongsto('sites', [ 'foreignkey' => 'site_id', 'jointype' => 'inner' ]);
here controller function:
$site = $this->sites->newentity(); if ($this->request->is('post')) { $site = $this->sites->patchentity($site, $this->request->data, ['associated' => ['sitesmetadata']]); if ($this->sites->save($site)) { $this->flash->success(__('the site has been saved.')); return $this->redirect(['_name' => 'admin:home']); } else { $this->flash->error(__('the site not saved. please, try again.')); } }
here dump of $this->request->data , $site after patchentity:
/src/controller/admin/sitescontroller.php (line 33) [ 'title' => 'test', 'alias' => 'sdfs', 'layout' => 'default', 'sort' => '3', 'sites_meta_data' => [ (int) 0 => [ 'key' => 'keyword', 'value' => 'test' ] ] ] /src/controller/admin/sitescontroller.php (line 34) object(app\model\entity\site) { 'title' => 'test', 'alias' => 'sdfs', 'layout' => 'default', 'sort' => (int) 3, '[new]' => true, '[accessible]' => [ 'title' => true, 'alias' => true, 'layout' => true, 'sort' => true ], '[dirty]' => [ 'title' => true, 'alias' => true, 'layout' => true, 'sort' => true ], '[original]' => [], '[virtual]' => [], '[errors]' => [], '[repository]' => 'sites' }
also of note. tried creating sitesmetadata using tableregistry::get('sitesmetadata')->newentity
$this->request->data['sites_meta_data']
, worked, set $site->sites_meta_data[]
, set dirty , tried saving , error:
sqlstate[42000]: syntax error or access violation: 1064 have error in sql syntax; check manual corresponds mysql server version right syntax use near 'key, value, created, modified) values (22, 'keyword', 'test', '2015-09-25 18:55:' @ line 1
in case, 22
id of site after gets created.
update:
despite docs mentioning needing when using newentity() , belongstomany associations (as far can see), added sites_meta_data
site entity's $_accessible
attribute , above sql error while using $this->sites->patchentity($site, $this->request->data ...)
, builds sitesmetadata entity.
Comments
Post a Comment