В документации точно говорит, что связанные с ним данные могут быть сохранены как:Сохранение Связанных данных в CakePHP 3 контроллера
use App\Model\Entity\Article;
use App\Model\Entity\User;
$article = new Article(['title' => 'First post']);
$article->user = new User(['id' => 1, 'username' => 'mark']);
$articles = TableRegistry::get('Articles');
$articles->save($article);
Я попробовал это в моем коде, но я получаю ошибку:
Fatal Error Ошибки: Class 'App \ Controller \ TableRegistry' не найден
Файл /Users/mtkocak/Sites/gscrm/src/Controller/BusinessesController.php Line: 62
Вот мой код контроллера. Я сомневаюсь, что выше код действителен для моделей сущностей.
public function add() {
$business = $this->Businesses->newEntity($this->request->data);
$record = new Record($this->request->data['Records']);
$address = new Address($this->request->data['Addresses']);
$telephone = new Telephone($this->request->data['Telephones']);
$email = new Email($this->request->data['Emails']);
$record->business = $business;
$record->address = $address;
$record->email = $email;
if ($this->request->is('post')) {
var_dump($this->request->data['Records']);
$records = TableRegistry::get('Records');
$records->save($record);
// if ($this->Businesses->save($business)) {
// $this->Flash->success('The business has been saved.');
// return $this->redirect(['action' => 'index']);
// } else {
// $this->Flash->error('The business could not be saved. Please, try again.');
// }
}
$telephonetypes = $this->Businesses->Records->Telephones->Telephonetypes->find('list');
$records = $this->Businesses->Records->find('list');
$businesstypes = $this->Businesses->Businesstypes->find('list');
$this->set(compact('telephonetypes','business', 'records', 'businesstypes'));
}
Вот мой SQL дамп таблицы:
CREATE TABLE IF NOT EXISTS `businesses` (
`id` int(10) unsigned NOT NULL,
`record_id` int(10) unsigned DEFAULT NULL,
`businesstype_id` int(10) unsigned DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=1 ;
ALTER TABLE `businesses`
ADD PRIMARY KEY (`id`), ADD KEY `FK_businesses_records` (`record_id`), ADD KEY `FK_businesses_businesstypes` (`businesstype_id`);
Любая помощь приветствуется.
У меня есть "использовать" заявление, и я все еще получая ошибку. См. [Этот вопрос] (http://stackoverflow.com/questions/34157865/why-am-i-getting-tableregistry-not-found-in-cakephp-3-0). –