【发布时间】:2018-07-22 07:51:51
【问题描述】:
使用 Yii 2 ActiveForm,我正在尝试添加 GridView 以搜索选择要添加到关系中的项目(数据库是 MongoDB)
我想包含一个“搜索和选择”GridView 小部件,并将项目作为 id 数组添加到 ActiveForm 模型中。
例如:
<?php $form = ActiveForm::begin();?>
<?=$form->field($model, 'summary')->textInput()?>
<?=
GridView::widget([
'id' => 'productSearch',
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'pjax' => true,
'columns' => [
'name',
],
])
?>
<!-- Display the Assigned Products selected by productSearch -->
<?=
GridView::widget([
'id' => 'assignedProducts',
'dataProvider' => $model->AssignedProducts,
'columns' => ([
'name',
]),
]);?>
<?php ActiveForm::end();?>
但是,当我在 ActiveForm::begin() / ActiveForm::end() 标签中包含 GridView 搜索时,被调用的“POST”会触发表单。
是否有关于进行此类设置的指南?
或者我需要从头开始创建整个表单吗?
我知道我很可能必须使用一点jQuery来从GridView选择正确的“选定”项目吗?
【问题讨论】:
-
我想了解的是,如果您使用第一个 gridview 进行搜索并选择您希望它出现在它下面的下一个
GridView中的任何项目?对吗? -
我不认为你需要混合两个小部件 ActiveForm 和 GridView。您只需要 Gridview 并在 SearchModel 中定义关系。网上有很多例子,例如yiiframework.com/doc/guide/2.0/en/output-data-widgets。 ActiveForm 用于插入新记录或更新记录,而不是用于搜索。
-
@lubosdz 说 ActiveForm 不能用于搜索是不正确的,你从 GII 生成默认的 CRUD 并获取 _serch.php 文件进行搜索还是不要?