小编dan*_*ele的帖子

CakePHP 3.1不会保存简单的hasMany关系

我有两个实体,SiteSitesMetaData我想用的hasMany和属于关联协会联系.

我根据CakePHP 3.0书创建了一切,但出于某种原因,它没有生成或保存关联.

这是我的关系

SitesTable:

$this->hasMany('SitesMetaData', [
    'foreignKey' => 'site_id',
    'dependent' => true
]);
Run Code Online (Sandbox Code Playgroud)

和SitesMetaDataTable(通过烘焙模型自动生成):

$this->belongsTo('Sites', [
    'foreignKey' => 'site_id',
    'joinType' => 'INNER'
]);
Run Code Online (Sandbox Code Playgroud)

这是我的控制器功能:

    $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 could not be saved. Please, try again.'));
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是在patchEntity之后的$ this-> request-> data和$ site的转储:

 /src/Controller/Admin/SitesController.php (line 33)

[
'title' => 'test', …
Run Code Online (Sandbox Code Playgroud)

php cakephp cakephp-3.0

5
推荐指数
1
解决办法
542
查看次数

标签 统计

cakephp ×1

cakephp-3.0 ×1

php ×1