Forms 在布局内部渲染视图

Forms 在布局内部渲染视图,forms,widget,yii2,render,Forms,Widget,Yii2,Render,我试图在main.php布局中使用表单。表单位于视图文件夹中,其中包含与我的新闻稿模型和控制器相关的视图 到目前为止,我已尝试创建以下小部件:** <?php namespace app\components; use app\models\Newsletter; use yii\base\Widget; use yii\helpers\Html; class NewsletterForm extends Widget { public function run() {

我试图在main.php布局中使用表单。表单位于视图文件夹中,其中包含与我的新闻稿模型和控制器相关的视图

到目前为止,我已尝试创建以下小部件:**

<?php
namespace app\components;

use app\models\Newsletter;
use yii\base\Widget;
use yii\helpers\Html;


class NewsletterForm extends Widget

{
    public function run()
{ 
    $model = new Newsletter;

    return $this->render('_form', [
        'model' => $model
    ]);
}
}

?>
如何在views\newsletter\\u form.php中呈现表单。
表单需要在main.php的页脚内呈现

在与OP进行了广泛讨论后,我们认为小部件不适合他的用例。小部件旨在成为独立的代码片段,能够在不同情况下重复使用。他只想从现有的MVC组合中呈现一个视图文件

这就是我们决定的

使用的布局是main.php,我们编辑此布局是为了:

use app\models\Newsletter;

echo $this->render('@app/views/site/_index', 'model' => new Newsletter);
这样做的好处是保留了他使用的现有表单

然后他需要在表单中指定一个控制器/动作组合,如下所示

$form = ActiveForm::begin([ 
'action' => Url::to(['newsletter/create']) 
]);
让我们。
$form = ActiveForm::begin([ 
'action' => Url::to(['newsletter/create']) 
]);