yii2:仅自定义操作列中的一些按钮(默认为其他按钮)
yii2: custom only some buttons in actions columns (other ones by default)
我只想重载操作栏中的一些按钮,
但是当我尝试这样做时,默认按钮不起作用
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
(...)
[
'class' => 'yii\grid\ActionColumn',
'headerOptions'=> ['style'=>'width: 70px;'],
'template' => '{view} {update} {delete}',
'buttons' => [
'view' => function ($url, $model) {
(...)
},
'update' => function ($url, $model) {
(...)
}
],
'urlCreator' => function ($action, $model, $key) {
if ($action === 'view') {
(...)
}
else if ($action === 'update') {
(...)
}
}
],
],
]); ?>
使用上面的代码,'delete' 操作不起作用,
生成的代码是:
<a title="Elimina" aria-label="Elimina" data-confirm="...?" data-method="post" data-pjax="0">
<span class="glyphicon glyphicon-trash">
</span>
</a>
因此,"delete" 未发送操作并重新加载索引页面,
你能帮帮我吗?
这部分导致了问题:
'urlCreator' => function ($action, $model, $key) {
if ($action === 'view') {
(...)
}
else if ($action === 'update') {
(...)
}
}
您没有为 delete
操作按钮指定 url 创作,这就是为什么当您点击它时它什么都不做。将条件添加到 delete
的 urlCreator
回调中以生成 url.
我只想重载操作栏中的一些按钮, 但是当我尝试这样做时,默认按钮不起作用
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
(...)
[
'class' => 'yii\grid\ActionColumn',
'headerOptions'=> ['style'=>'width: 70px;'],
'template' => '{view} {update} {delete}',
'buttons' => [
'view' => function ($url, $model) {
(...)
},
'update' => function ($url, $model) {
(...)
}
],
'urlCreator' => function ($action, $model, $key) {
if ($action === 'view') {
(...)
}
else if ($action === 'update') {
(...)
}
}
],
],
]); ?>
使用上面的代码,'delete' 操作不起作用, 生成的代码是:
<a title="Elimina" aria-label="Elimina" data-confirm="...?" data-method="post" data-pjax="0">
<span class="glyphicon glyphicon-trash">
</span>
</a>
因此,"delete" 未发送操作并重新加载索引页面,
你能帮帮我吗?
这部分导致了问题:
'urlCreator' => function ($action, $model, $key) {
if ($action === 'view') {
(...)
}
else if ($action === 'update') {
(...)
}
}
您没有为 delete
操作按钮指定 url 创作,这就是为什么当您点击它时它什么都不做。将条件添加到 delete
的 urlCreator
回调中以生成 url.