2015-10-25 4 views
0

Я уверен, что я просто идиот, но может ли кто-нибудь помочь?, Следующий контроллер сохраняет только таблицу users, а не дочернюю таблицу «Userapikey» (все остальные данные автоматически создаются CakePHP и MySQL):Cakephp 3.0 Несколько таблиц

$data = $this->request->data; 
// Create the default access mask 
$data[ 'userapikey' ] = [ 
    [ 'accessmask' => 22966271 ] 
]; 

// Create a new entity in the DB and populate 
$User = $this->Users->newEntity($data, [ 'associated' => [ 'Userapikeys' ] ); 

// Commit to the database 
if($this->Users->save($User)) { 
// Blah Blah send message etc. 
} 

UserTable.php получил

$this->hasMany('Userapikeys', [ 'foreignKey' => 'user_id' ]); 

Userapikeys.php имеет

$this->belongsTo('Users', [ 'foreignKey' => 'user_id' ]); 

Если вам нужна дополнительная информация, я был бы рад предоставить

+0

PS Я уже сгребаю через всю 3.0 документации CakePHP и несколько вопросов других людей, но не имел успеха – B1scuit

ответ

1

В конце концов обнаружили, что в сущности User.php, пожалуйста, убедитесь, доступный включил вашу «детскую» таблицу, например.

protected $_accessible = [ 
    'username' => true, 
    'password' => true, 
    'user_api_keys' => true 
]; 

и убедитесь, что это подчеркнутая версия и множественным

1

Учитывая, что у вас есть hasMany Пользователь UserApikeys ваш массив данных должен быть:

$data[ 'userapikeys' ][0] = [ 
    [ 'accessmask' => 22966271 ] 
]; 
+0

я включил это в коде и, к сожалению для успеха – B1scuit

+0

Я также создал Gist, если это помогает https://gist.github.com/dystopiavirus/4697dca695ddd14ad6c3 – B1scuit

Смежные вопросы