我在Yii2中有一个名为eventos的视图文件夹。此视图是图库。
_view2.php用于向普通公众显示图像。它运作得很好。
但现在我想在_view2.php中创建一个globalsearch输入文本。
我已经有一个用于显示图像的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') ?>
有什么想法吗?
答案 0 :(得分:6)
解决。
_view2.php代码:
use yii\base\view;
echo $this->render('_search', array('model'=>$searchModel));
答案 1 :(得分:0)
您可以使用renderPartial在另一个
中显示partil视图例如添加:
<?php echo $this->renderPartial('_search', array('model'=>$model)); ?>
这是一个用gii生成的例子
以下是文件视图/ 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视图,例如在更新视图中。