我对Yii2很新.我正在使用先进的结构
我需要在不使用模型的情况下在视图中显示自定义sql结果,因为我想显示sql视图.
的index.php
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'COD_RISORSA',
[
'label' =>"Nome",
'attribute' => 'NOME',
'value'=>function($data){
return $data["NOME"];
}
],
'COGNOME',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
Run Code Online (Sandbox Code Playgroud)
VRisorseController.php
public function actionIndex()
{
$totalCount = Yii::$app->db->createCommand('SELECT COUNT(*) FROM v_risorse')->queryScalar();
$dataProvider = new SqlDataProvider([
'sql' => 'SELECT * FROM v_risorse',
'totalCount' => $totalCount,
'sort' =>false,
'pagination' => [
'pageSize' => 10,
],
]);
return $this->render('index', [
'dataProvider' => $dataProvider,
]);
}
Run Code Online (Sandbox Code Playgroud)
在以下网址: http://localhost/advanced/frontend/web/index.php?r = vrisorse%2Findex
我有错误: …
我是Yii2中的新手,我无法在Yii2中找到后退按钮,我发现Yii1中的解决方案是:
echo CHtml::link('Back',Yii::app()->request->urlReferrer);
Run Code Online (Sandbox Code Playgroud)
但是我无法在Yii2中找到解决方案,你能帮助我吗?
我想只重载动作列中的一些按钮,但是当我尝试这样做时,默认按钮不起作用
<?= 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') {
(...)
}
}
],
],
]); ?>
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,"删除"操作不起作用,生成的代码是:
<a title="Elimina" aria-label="Elimina" data-confirm="...?" data-method="post" data-pjax="0">
<span …Run Code Online (Sandbox Code Playgroud) 我对 Yii 很陌生,我遇到了一个小问题,我想显示一个已经过滤的表,并允许使用查询参数字符串进行过滤。
我在 Controller 中声明了一个新动作
public function actionIndexFiltered($candidateId)
{
$searchModel = new CvRisorsaTitoloSearch();
//$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider = $searchModel->search([$searchModel->formName() => ['is_cod_candidato' => $candidateId]]);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
Run Code Online (Sandbox Code Playgroud)
此代码有效,但它不允许使用查询参数进行过滤。
'CvRisorsaTitolo' 是包含其他信息的“多对多”表,而 'is_cod_candidato' 是 'CvRisorsaTitolo' 的字段。
您好,我可以将我的过滤器和查询参数过滤器结合到其他字段“Yii::$app->request->queryParams”。
谁能帮我?