как построить форму нескольких моделей в yii2?

Я пытаюсь создать форму, которая использует несколько экземпляров модели и отправляет их все сразу (табличный ввод), я прочитал это статья на вики yiiframework, но я пытаюсь создать пользовательскую модель который содержит свойства и атрибуты из нескольких моделей, а затем использовать эту модель в моей форме.

[Пример]

модель1

namespace app\models;

use Yii;
use \yii\db\ActiveRecord;

class Country extends ActiveRecord
{
   ........
}

молель2

 namespace app\models;

use Yii;
use \yii\db\ActiveRecord;

class User extends ActiveRecord
{
   ........
}

person Amr    schedule 21.04.2015    source источник


Ответы (1)


Создать собственную модель несложно. Более подробное объяснение можно найти, перейдя по ссылке.

Ваша собственная модель может выглядеть так:

namespace app\models;

use yii\base\Model;

class Custom extends Model
{
    public $name;
    public $surname;
    public $email;
    public $country;
    public $city;

    public function rules()
    {
        return [
        // the name, surname, city attributes are required
        [['name', 'surname', 'country', 'city'], 'required'],

        // the email attribute should be a valid email address
        ['email', 'email'],
    ];
    }

    public function customFunction()
    {
        //some custom things
    }
}
person Bfcm    schedule 21.04.2015
comment
Как насчет сохранения и проверки атрибутов? - person Amr; 21.04.2015
comment
Правила проверки объявляются в функции rules(). Вы можете позвонить yii\base\Model::validate() для проверки полученных данных. Если ошибок не обнаружено, возвращается true. В противном случае он сохранит ошибки в свойстве yii\base\Model::$errors и вернет false. - person Bfcm; 21.04.2015
comment
Сохранение просто $model->save() обычно вызывается в контроллере: if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } - person Bfcm; 21.04.2015