【发布时间】:2015-02-11 13:13:56
【问题描述】:
我遇到的差不多是这样的:
- 我有一个
create form,表单包含两个模型的属性; - 我将它们从控制器传递到视图,并添加规则以验证两个模型中的属性;
- 但表单验证效果不佳 - 模型的验证是 不工作。
我不知道如何解决这个问题,谢谢你的帮助!
我找到了一篇参考文章 - Complex Forms with Multiple Models,但它是 TBD。
这是我的示例代码。
控制器 - SiteController.php:
namespace task\controllers;
use yii\web\Controller;
use task\models\Task;
use task\models\Customer;
class Task extends Controller
{
public function actionCreate()
{
$model = new Task;
$customerModel = new Customer;
// load, validate, save ...
return $this->render('create', [
'model' => $model,
'customerModel' => $customerModel
]);
}
}
模型 - Task.php、Customer.php:
namespace task\models;
use yii\db\ActiveRecord;
class Task extends AcitveRecord
{
public $title, $published_at;
public function rules()
{
return [
[['title', 'published_at'], 'required'],
['published_at', 'match', 'pattern' => '/patten for time/']
];
}
}
namespace task\models;
use yii\db\ActiveRecord;
class Customer extends ActiveRecord
{
public $name;
public function rules()
{
return [
['name', 'required'],
];
}
}
查看-create.php:
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'title')->textInput() ?>
<?= $form->field($model, 'publish_at')->textInput() ?>
<?= $form->field($customerModel, 'name')->textInput() ?>
<?= Html::submitButton('submit')?>
<?php ActiveForm::end(); ?>
【问题讨论】:
-
您至少可以为您的控制器操作和模型输入添加代码吗?没有它,你的问题就太宽泛了。
-
谢谢,已添加。
标签: php validation yii2