我遇到什麼幾乎是這樣的:Yii2:如何在視圖中使用多個模型時啓用表單驗證?
- 我有一個
create form
和形式包含兩個型號的屬性; - 我將它們從控制器傳遞到視圖,並在兩個模型中添加規則以驗證屬性;
- 但表單驗證效果不佳 - 模型的驗證是 不起作用。
我不知道如何解決此問題,感謝您的幫助!
我找到一篇參考文章 - Complex Forms with Multiple Models,但它是待定。
這是我的示例代碼。
控制器 - 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(); ?>
你能至少添加代碼爲您的控制器的動作和模型的輸入?沒有它,你的問題太廣泛了。 – topher 2015-02-11 14:18:41
謝謝,已添加。 – haoliang 2015-02-12 01:45:09