Gridview Yii2:将索引页传递给视图中的面包屑并更新操作
1在index GridView中有多页结果,带有默认的LinkPager设置。 2在ActionColumn中调用更新或查看操作。 3做任何事情,然后单击面包屑返回到您来自GridView的同一页面,但事实并非如此:您回到了第1页,在某些用例中,这可能非常烦人,当然,您可以简单而不愉快地返回到浏览器中,但是 所以,在制定某种不合法的基于$的解决方案之前,有人知道这方面有什么链接寻呼机或相关的分页魔法吗Gridview Yii2:将索引页传递给视图中的面包屑并更新操作,gridview,yii2,breadcrumbs,yii2-advanced-app,Gridview,Yii2,Breadcrumbs,Yii2 Advanced App,1在index GridView中有多页结果,带有默认的LinkPager设置。 2在ActionColumn中调用更新或查看操作。 3做任何事情,然后单击面包屑返回到您来自GridView的同一页面,但事实并非如此:您回到了第1页,在某些用例中,这可能非常烦人,当然,您可以简单而不愉快地返回到浏览器中,但是 所以,在制定某种不合法的基于$的解决方案之前,有人知道这方面有什么链接寻呼机或相关的分页魔法吗 提前感谢我想这可能对您有用: $this->params['breadcrumbs']
提前感谢我想这可能对您有用:
$this->params['breadcrumbs'][] = ['label' => 'YourLabel', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => Yii::$app->request->get('page'), 'url' => ['index', 'page' => Yii::$app->request->get('page')]];
现在似乎还没有链接寻呼机的魔力可以做到这一点,但我设法找到了一个避免控制器调整的解决方案。只需编辑view.php/update.php并在面包屑之前添加:
parse_str(parse_url(Yii::$app->request->referrer, PHP_URL_QUERY), $params);
然后在面包屑中:
$this->params['breadcrumbs'][] = ['label' => 'myLabel', 'url' => ['index', 'page' => isset($params['page']) ? $params['page'] : '']];
$this->params['breadcrumbs'][] = ['label' => 'myLabel', 'url' => ['index', 'page' => Yii::$app->session['myPage']]];
现在,每次单击myLabel面包屑,我们都会被发送到GridView中的相应页面
主要的缺点是在第二步之后没有页面跟踪,所以如果您这样做:index->view/update/create->!索引,页面跟踪将丢失,因此最好使用会话变量,如下所示:
public function actionIndex()
{
$searchModel = new BibliografiaSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
Yii::$app->session['myPage'] = Yii::$app->request->get('page');
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
然后在面包屑中:
$this->params['breadcrumbs'][] = ['label' => 'myLabel', 'url' => ['index', 'page' => isset($params['page']) ? $params['page'] : '']];
$this->params['breadcrumbs'][] = ['label' => 'myLabel', 'url' => ['index', 'page' => Yii::$app->session['myPage']]];
这样,页码将随时保留 谢谢,不过Yii::$app->request->get'page'很有用,但它不能解决将此值放入视图/更新中的问题,因为它在视图/更新中不可用。如果有用,请重新设置它以进行更新,您需要管理页面值并将其传递给控制器,以便在更新视图中呈现。我不是在搜索$\u get或派生方法通过controller/view进行操作,我知道这是一种通过controller/view获得此类参数的方法。类似于params.php的使用,它是只读的。我知道有一个Yii::$app->view->params['myParam'],但我仍在努力找出它是否适合这种情况。为什么不在视图中使用$this->params['myParam']