Yii2 - 在视图 index.php 内渲染 _search.php 文件

Yii2 - Render _search.php file inside index.php of a view

我在 Yii2 中有一个名为 eventos 的视图文件夹。此视图是一个图片库。

_view2.php是为了给一般人展示图片public。效果很好。

但现在我想在 _view2.php 中创建一个全局搜索输入文本。

我已经有一个用于显示图像的 GridView 小部件,但我不想使用 $searchmodel 框,所以我禁用了它们。

我想要的是在 _view2.php 文件

中只用一个输入字段渲染 _search.php 文件

我的问题是在 _view2.php 文件中渲染 _search.php。

这是 _view2.php 的代码:

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'showOnEmpty'=>false,
    'summary'=>'',
    'showFooter'=>false,
    'showHeader' => false,
    'bordered' => false,
    'striped' => false,
    'hover' => true,
    //'options' => ['class' => 'grid-view'],
    //'layout' => "{summary}\n{items}\n{pager}",

    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],

        //'id',
        //'nome',
        'descricao',
        'data',
        // No model -> getImageurl()
        [
            'label' => '',
            'format' => 'raw',
            'value'=> function($data) { return Html::a(Html::img($data->imageurl, ['width'=>'300', 'height' => "170"]), $data->foto); },
        ],
        [
            'label' => '',
            'format' => 'raw',
            'value'=> function($data) { return Html::a(Html::img($data->imageurl2, ['width'=>'300', 'height' => "170"]), $data->foto2); },
        ],

        ['class' => 'yii\grid\ActionColumn', 'template' => ''],
    ],
]); ?>

我需要在 _view2.php 中渲染 _search.php。

_search.php的代码:

<?php $form = ActiveForm::begin([
    'action' => ['index'],
    'method' => 'get',
]); ?>

<?= $form->field($model, 'globalsearch') ?>

有什么想法吗?

您可以使用 renderPartial 在另一个视图中显示分部视图

例如添加这个:

<?php echo $this->renderPartial('_search', array('model'=>$model)); ?>

这个是顺便用gii生成的例子

这是一个文件的代码 view/create.php:

<?php
/* @var $this EventsController */
/* @var $model Events */

$this->breadcrumbs=array(
    'Events'=>array('index'),
    'Create',
);

$this->menu=array(
    array('label'=>'List Events', 'url'=>array('index')),
    array('label'=>'Admin Events', 'url'=>array('admin')),
);
?>

<h1>Create Event</h1>

<?php echo $this->renderPartial('_form', array('model'=>$model)); ?>

如您所见,视图 'create' 加载部分视图“_form”,这是您完成此操作的方式。因此,您可以在其他视图中重用 _form 视图,例如在更新视图中。

已解决。

_view2.php代码:

use yii\base\view;
echo $this->render('_search', array('model'=>$searchModel));