flaviovs/yii2-form

为 Yii2 的复合模型(即表单)

安装: 960

依赖者: 0

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:yii2-extension

0.0.5 2019-05-11 01:18 UTC

This package is auto-updated.

Last update: 2024-09-11 14:41:06 UTC


README

使用场景

你需要在应用中为单独的模型对象提供表单输入。

安装

$ composer require flaviovs/yii2-form

如何使用

  1. 创建你的表单模型。将组成模型作为正常属性添加

    class MyForm extends fv\yii\form\Model
    {
    	/** @var \app\models\Post */
    	public $post;
    
    	/** @var \app\models\Comment */
    	public $comment;
    }
  2. 添加 modelAttributes() 函数,该函数指示哪些表单属性包含在提交时要加载的模型

    protected function modelAttributes()
    {
    	return ['post', 'comment'];
    }
  3. 为模型添加验证规则

    protected function rules()
    {
        return [
            [$this->modelAttributes(), 'safe'];
        ];
    }
  4. 像平常一样在你的视图中添加输入控件。只需记住要引用表单的模型属性,而不是表单模型本身。

    /** @var \fv\yii\form\Model $model */
    
    $form = ActiveForm::begin();
    
    echo $form->field($model->post, 'title');
    echo $form->field($model->comment, 'body');
    
    ActiveForm::End();
  5. 像平常一样处理表单

    $model = new MyForm([
    	'post' => new Post(),
    	'comment' => new Comment(),
    ]);
    if ($model->load(\Yii::$app->request->post()) && $model->validate()) {
    	$model->post->save();
    	$model->comment->save();
    }

支持

https://github.com/flaviovs/yii2-form