0

AR関係にこれを実装しようとしています: http://www.yiiframework.com/wiki/19/how-to-use-a-single-form-to-collect-data-for-two-or -more-models/ そしてやっていること:

public function actionCreate()
{
    $application = new Application;
    $company = new AppCompany;

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

    if(isset($_POST['Application'], $_POST['AppCompany']))
    {
        $application->attributes=$_POST['Application'];
        $company->attributes=$_POST['AppCompany'];

        $valid=$application->validate();
        $valid=$company->validate() && $valid;

        if($valid)  
        {  
            if($application->save(false))
            {
                $company->applicant_id = $application->id;
                $company->save(false);
                $this->redirect(array('view','id'=>$application->id));
            }

        }

    }

    $this->render('create',array(
        'application'=>$application,
        'company'=>$company,
    ));
}

次に、新しいアプリケーションを作成してすべての有効なデータを入力しようとすると、このデータは両方のテーブルに正常に保存されます。しかし、いくつかのフィールドを空のままにしておくと (それらが必要な場合)、次のエラーが発生します: クラス AppCompany のオブジェクトを検証時に文字列に変換できませんでした。

私の間違いを教えてください。

4

0 に答える 0