У меня нет большого количества информации для работы, но я отдам ее.
Я хочу знать, как я могу добавить запись в таблицу Часы с использованием user_code
Вы упоминаете, используя patchEntity, так что обновление информации, которая уже есть. Предполагая, что user_code является столбец «код» вы говорите там, сначала найти пользователя по коду:
$users_tbl = TableRegistry::get('Users');
// find the user
$user = $users_tbl->findByCode($user_code)->first();
if ($user) {
// replace '$this->request->data() with whatever patch data you wanted
$users_tbl->patchEntity($user, $this->request->data(), [
'associated' => ['Hours']
]
if ($users_tbl->save($user)) {
// success!
} else {
// error!
}
} else {
// error!
}
Это также будет зависеть от того, как у вас есть данные, которые вы прошли в (где мой «$ this-> request-> data(), или независимо от вашего массива) - он должен соответствовать именам правого столбца и находиться в правильном формате, указанном here.
Однако это обновление данных. Просто добавив данные, вы можете загрузить таблицу часов и добавить новую запись с user_id, полученной в результате поиска пользователя:
$hours_tbl = TableRegistry::get('Hours');
$hours = $hours_tbl->newEntity([
'user_id' => $user->id // $user populated from same method earlier
]);
/* assumed 'id' was autoincrementing and 'created' was populated
through Timestamp behavior */
if ($hours_tbl->save($hours)) {
// yay!
} else {
// boo
}
Не могли бы вы включить код для решения, которое у вас есть сейчас? –