모든 CActiveRecord
인스턴스 (또는 해당 인스턴스의 경우 CModel
)에는 모든 속성을 설정할 수있는 attributes
이라는 getter/setter가 있습니다. 생성 된 코드는 attributes
속성을 사용하기 때문에 충돌이 발생합니다. 이전에 설명한대로 동작합니다. 이 알에게 (안전)를 설정하기위한 것입니다
$model->attributes=$_POST['ModelClassName'];
// or
$model->attributes=$_GET['ModelClassName'];
한 번 모델의 속성 :
컨트롤러는 같은 작업을 수행합니다. 대신 기존 데이터베이스 모델의 데이터베이스 특성 attributes
을 덮어 씁니다.
일반적으로 $_GET['ModelClassName']
및 $_POST['ModelClassName']
에는 데이터 배열이 포함되어 있으므로 설명하는 오류가 발생합니다.
이
// in the controller
$model->setAttributes($_POST['ModelClassName']);
// and
$model->setAttributes($_GET['ModelClassName']);
내가 생각하는 나머지 :
내가 가장 쉬운 수정이 직접 다음과 같이 뭔가 위에서 언급 한 라인을 교체로 이어질 것 "정상적인"attributes
행동 세터 함수를 호출하는 것 같아요 생성 된 CRUD 코드 (보기)를 작동시킬 수있는 그대로 유지해야합니다. 당신은 어떻게이 작품 이유는 __get
및 __set
마법 기능에 어떤 research을 할 최선의 방법과 그들이 YII 프레임 워크에서 사용하는 방법을 알고 싶다면
.
단일 테이블의 단일 열이면 이름을 바꿀 수 있습니까? –
이 오류를 생성하는 코드를 확인해야합니다. 설정 파일의 오류 로그를 켜서 파일/라인 번호를 정확히 볼 수 있어야합니다. – Pitchinnate