Yii2渲染_tabs.php导航栏报错Trying to get property 'id' of non-object如何解决
问题原因
你的错误是因为传递给_tabs.php的Client变量为null,一共两处错误:
ImportController的actionIndex方法中,已经查询到了有效的Client对象,但渲染视图时没有将该变量传递给index.php视图index.php视图顶部手动将$Client赋值为null,最终传递给_tabs.php的就是null值,代码里访问$Client->id时就触发了非对象属性读取错误
修复步骤
第一步:修改ImportController.php的actionIndex方法
调整渲染视图的参数,把查询到的Client对象传递给视图:
return $this->render('index', array( 'ImportForm' => $ImportForm, 'Client' => $Client // 新增这行参数 ));
第二步:修改index.php视图
删除视图顶部的$Client= null;这行代码,不再手动覆盖控制器传递过来的有效Client对象。
验证说明
你的getClient方法如果查询不到对应的客户已经主动抛出了404异常,所以能走到渲染视图步骤时,$Client一定是有效的Client对象,不会出现空值问题,修复后_tabs.php就能正常读取$Client->id生成对应URL。
内容的提问来源于stack exchange,提问作者SK111
相关产品推荐
相关产品推荐

