0
나는 사용자과 클라이언트 테이블을 가지고 있습니다.CakePHP에서 한 모델의 여러 모델 만들기
-- -----------------------------------------------------
-- Table `users`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `users` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`email` VARCHAR(45) NOT NULL,
`password` VARCHAR(255) NOT NULL,
`usertype` CHAR(2) NOT NULL,
`created` DATETIME NOT NULL,
`modified` DATETIME NULL DEFAULT NULL,
`firstname` VARCHAR(45) NOT NULL,
`lastname` VARCHAR(45) NOT NULL,
`phonenumber` VARCHAR(45) NOT NULL,
`suburb` VARCHAR(45) NOT NULL,
`state` VARCHAR(10) NOT NULL,
`businessname` VARCHAR(45) NULL DEFAULT NULL,
`image` BLOB NULL DEFAULT NULL,
`valid` INT NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `email_UNIQUE` (`email` ASC))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `clients`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `clients` (
`id` INT NOT NULL AUTO_INCREMENT,
`user_id` INT NOT NULL,
PRIMARY KEY (`id`),
INDEX `CLIENTS_FK_idx` (`user_id` ASC),
CONSTRAINT `CLIENTS_FK`
FOREIGN KEY (`user_id`)
REFERENCES `users` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
나는이 두 테이블을 구운하고 나는 사용자 등록 페이지를 만든 다음과 같이
는 그들은 연결되어 있습니다. 양식을 제출할 때 데이터베이스에 사용자 및 클라이언트 개체를 모두 생성해야합니다. 나는 코드가 자동으로 클라이언트에 테이블뿐만 아니라 모든 데이터를 미리 채우려
public function clientregistration()
{
//Register a new client. Client enters all details and the system sets usertype=CL
$user = $this->Users->newEntity();
if ($this->request->is('post')) {
$user = $this->Users->patchEntity($user, $this->request->getData());
$user->usertype = 'CL';
$user->valid = 1;
if ($this->Users->save($user) && $this->Coaches->($coach)) {
$this->Flash->success(__('You have successfully registered.'));
return $this->redirect(['action' => 'login']);
}
$this->Flash->error(__('Registration failure. Please, try again.'));
}
$this->set(compact('user'));
$this->set('_serialize', ['user']);
:
여기 내 UsersController 방법 폼 CakePHP의입니다.
어떻게하면됩니까?
감사 인 Szymon : 당신이 사용자를 저장 한 후 협회가 UsersTable.php 올바르게 설정되어 있는지 그래서, 당신은 클라이언트 개체를 저장할 수 있습니다! ! –
관련 데이터를 별도로 저장하지 않아도됩니다. [** ORM은 자동으로 처리 할 수 있습니다 **] (https://book.cakephp.org/3.0/en/orm/saving-data.html#saving- 연관), 관련 데이터로 사용자 엔티티 (입력)를 올바르게 준비하기 만하면됩니다. 그리고 실제로 물건을 별도로 (어떤 이유로 든) 저장한다면, 항상 거래에서하십시오! @ BigGreenAlligator – ndm