Yii에서 _form.php
보기 파일은 기본적으로 update.php
및 create.php
보기에서 사용됩니다.
그럼, 당신은 할 필요가 있습니다. 비슷 : update.php와 create.php보기 모두에서 모달로 양식을 삽입하십시오. 동작이 다르므로 논리를 별도로 유지하십시오. 이것이 MVC의 기본 이점입니다.
public function actionCreate() {
$model = new Users;
if (isset($_POST['Users'])) {
$model->attributes = $_POST['Users'];
if ($model->save()) { // here in the save() method the valadation is included
// ONLY after we validate and successfully saved we go to update action
$this->redirect(array('update', 'id' => $model->id));
}
}
$this->render('create', array(
'model' => $model,
));
}
중요한 것은 당신이 save()
방법을 저장하려고하면 유효성 검사가 자동으로 무슨 일이 생긴 것입니다. 유효성 검사가 성공적으로 수행되지 않으면 로직은 모델에 데이터가 이미 전달되어 있으므로보기에 채워진 필드가있는 동일한 작업 (예 : 생성)으로 돌아갑니다. $model->attributes = $_POST['Users']
.
유효성 검사가 성공하면 추가로 리디렉션됩니다. Nessesary 아약스 양식 제출, 심지어 캐주얼 여기에 맞는 제출하십시오.
public function actionUpdate($id) {
$model = $this->loadModel($id);
if (isset($_POST['Users'])) {
$model->attributes = $_POST['Users'];
if ($model->save()) { // after saving EXISTING record we redirect to 'admin' action
$this->redirect(array('admin'));
}
}
$this->render('update', array(
'model' => $model,
));
}
원래 설계대로 유지하는보기 (업데이트/작성)의 양식. 고유성
검증 모델 규칙()에 간단하다 : 이메일 구문
array('username, email', 'unique'),
이메일 valadation는 것은 같이 보인다
는
array('email', 'email'),
그래서 해결책은 다음과 같아야합니다 - 아약스 양식을 만듭니다 submit - 유효성 확인이 유효하면 모달 채우기 - 사용자가 전자 메일 및 닉네임을 입력합니다. 다음에 수행 할 작업은 무엇입니까? 이메일과 닉네임을 확인한 다음 모든 데이터를 함께 제출하려면 어떻게해야합니까? – kokoseq
@kokoseq, 내 업데이트 참조. –