내 응용 프로그램에는 ModelA
의 인스턴스를 만들 수있는 양식이 있습니다.Yii - 다른 모델 컨트롤러 액션에서 모델 만들기
그러나이 양식을 제출할 때 폼 제출에서 오는 데이터로 ModelB
의 인스턴스를 만들고 싶습니다. 그러나, 제출 후, 내가 만든 ModelA
의 견해를 보여주고 싶습니다. 간단히 말해서 ModelB
이 자동으로 생성되기를 바랍니다.
ModelA
의
actionCreate()
내부 컨트롤러
B
의 인스턴스를 생성하여,
B
의 방법
actionCreate()
actionCreate()
ModelB
의 호출의 접근을 시도했다. 그러나 이것은 나에게 맞는 것 같지 않습니다.
public function actionCreate(){
$model = new ModelA;
if(isset($_POST['ModelA'])) {
$model->attributes = $_POST['ModelA'];
$modelB = new ModelB("create");
$res = $modelB->actionCreate();
if($res && $model->save()){
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',array(
'model'=>$model,
));
}
또 다른 접근법은 ModelA의 actionCreate 메소드에서 직접 ModelB를 작성하고 저장하는 것입니다. 그러나 코드 반복이 있고 사용자 권한 조치 규칙으로 인해 위험 할 수 있기 때문에 이것 역시 옳은 것처럼 보입니다.
내 질문은 : 더 좋은 접근 방법입니까, 아니면 이렇게하는 것이 좋을까요? 측면에 ModelB
을 어떻게 안전하고 효율적으로 만들 수 있습니까?
감사합니다.
감사합니다. 그것으로보고. :) – MobileCushion