Yii2点击跳转按钮页面仅刷新不渲染目标视图问题
Yii2点击按钮仅刷新页面不渲染目标视图问题排查
问题现象
点击页面上的「View Picture」按钮后,页面仅触发刷新,未正常加载渲染viewgood.php对应视图内容。
相关代码
view.php 按钮代码片段
<a href="/goods/viewgood/<?=$good['GoodGallery'][0]['id']?>" class="btn btn-primary">View Picture</a>
viewgood.php 视图代码
<?php echo 'hello';
GoodsController.php 对应方法代码
public function viewgood($id = null) { }
问题原因
一共两个核心错误:
- 控制器方法命名不符合Yii2规范:Yii2中可以通过路由直接访问的控制器动作,方法名必须以
action为前缀,当前写的viewgood属于控制器内部普通方法,框架无法匹配到对应路由的处理逻辑,请求会默认回退到来源页,表现为页面刷新。 - 动作方法内缺少渲染视图的逻辑:就算方法名改对,空方法也不会自动加载同名视图,必须显式调用渲染方法返回内容,才会输出对应视图。
修复方案
修改GoodsController里的对应方法为如下代码:
// 注意方法名加action前缀,遵循驼峰命名规则 public function actionViewgood($id = null) { // 如需根据传入的$id查询商品数据,可在此处编写对应业务逻辑 // 调用render方法渲染目标视图并返回结果 return $this->render('viewgood'); }
修改完成后再点击按钮即可正常跳转到viewgood.php页面,输出hello内容。
内容的提问来源于stack exchange,提问作者Catalina Neshina
相关产品推荐
相关产品推荐

