public function actionUpdateprofile(){
$user = User::model()->findByPk($_POST['User']['user_id']);
$profile = Profile::model()->findByPk($_POST['User']['user_id']);
if(isset($_POST['User']) || isset($_POST['Profile'])){
$user->attributes = $_POST['User'];
$profile->attributes = $_POST['Profile'];
$user->save();
$profile->save();
}
}
프로필과 사용자 테이블의 값을 업데이트하기 위해이 코드를 사용했습니다. 하지만 작동하지 않습니다. 내가 보내는 경우 $_POST['Profile']['email'] = '[email protected]';
오류가 있지만 데이터베이스에 여전히 오래된 값이 표시되었습니다. 왜?yii 모델 -> 저장하지 않음 업데이트 값
내가 뭘 잘못 했습니까?
다음은 $profile->attributes
의 결과입니다. 이메일에는 여전히 오래된 가치가 있습니다.
Array
(
[user_id] => 35
[lastname] => asd
[firstname] => asrtyr
[email] => xyz.gmail.com
[phoneno] => 123456
[prof_img] =>
[phoneno2] => 0
[agentKey] =>
[fb_id] =>
)
'이메일'을 (를) 추가 했습니까? o 가능한 한 프로파일 모델? (규칙 방법) – Justinas
@Justinas가 말한 것. 프로파일 모델 규칙 배열에 "전자 메일"열을 정의하지 않은 경우이 열은 저장되지 않습니다. '이메일'에 대한 유효성 검사를 원하지 않는 경우 다음과 같이 규칙에 '안전'으로 추가해야합니다. 배열 ('이메일', '안전'), "save()"가 실제로 발생하는지 확인하지 않으므로 다른 확인 오류가 표시되지 않습니다. 유효성 검사 오류가 발생하면 false를 반환하고 $ profile-> getErrors()를 사용하여 유효성 검사 오류 목록을 얻을 수 있습니다. –
예 yii-user 모듈을 사용 중이기 때문에 이미 완료되었습니다. 그리고 그것은 사용자 추가 도중 잘 작동합니다. 업데이트 중 문제가 발생했습니다. –