my view.php
<?php
echo
Html::beginForm(['contactpersons/update'], 'post',['id' => 'update-form']) .
'<input type="hidden" name="id" value="'.$model->id.'">
<a href="javascript:{}" onclick="document.getElementById(\'update-form\').submit();
return false;">Update</a>'.
Html::endForm();
?>
<?= Html::a('Delete', ['delete', 'id' => $model->id], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => 'Are you sure you want to delete this item?',
'method' => 'post',
],
])
?>
我的控制器是
public function actionView($id)
{
$model = $this->findModel($id);
return $this->render('view', ['model' => $model]);
}
如何修改此内容,以便在网址中获取没有ID值的视图页。
提前致谢。
答案 0 :(得分:0)
您可以像这样更改
public function actionView($id = null) {
$model = null;
if ($id !== null) {
$model = $this->findModel($id);
}
return $this->render('view', ['model' => $model]);
}
但是在您的视图中,您执行以下代码:$model->id
当模型没有设置任何东西时,这不会起作用。因此,当$ id为null时,您可以创建一个新模型($model = new ModelClass()
)。
旁注:这看起来不像是一个视图操作,但更像是一个编辑操作,因此可能会将您的操作更改为actionEdit()
。
答案 1 :(得分:0)
您可以通过两种方法将数据发送到浏览器 - POST和GET。因此,如果你想隐藏id参数,那么你需要将你的id作为POST参数发送,这是一个不好的解决方案 - 它很难实现,因为POST在提交表单时通常会发送。