Yii2 - 传递表字段以从其他控制器查看

时间:2015-12-21 19:35:49

标签: php database variables controller yii2

我有一个DetailView,它在属于ProdutosController某些字段的视图中呈现(foto,nome等)。在detailView内部是一个超链接,显示每个录制的节目,按下时会从EncomendasController呈现视图,而EncomendasController必须只显示产品的名称​​(字段名称)我在其中激活了' Comprar'超链接。

<?= DetailView::widget([
    'model' => $model,
    'options' => ['class' => 'detail1-galeria-view2'],
    'attributes' => [
        // cria um array com a fotografia, em que carrega a path no campo fieldName da bd
        [
            'attribute'=>'',
            //'value'=>$model->foto,
            'value'=>Html::a(Html::img(Yii::$app->getUrlManager()->getBaseUrl() . "/" .$model->foto, ['width'=>'192', 'height' => "256"]), $model->foto),
            'format' => 'raw',
        ],
        [
        'attribute'=>'',
        'value'=>$model->nome,
        ],
        [
        'attribute'=>'',
        'value'=>$model->categoria,
        ],
        [
        'attribute'=>'',
        'value'=>$model->descricao,
        ],
        [
        'attribute'=>'',
        'value'=>$model->valor.' '.'€',
        ],
        // info
        [
        'attribute'=>'',
        'format' => 'raw',
        'value'=> Html::a(Yii::t('app','Comprar'), Url::toRoute(['encomendas/create'])),
        ],
    ],
]) ?>

我怎样才能通过现场&#34; nome&#34;从产品detailView中我按下超链接按钮到属于另一个名为EncomendasController的控制器的另一个视图,然后在新视图中显示相同的名称?

1 个答案:

答案 0 :(得分:0)

您可以将controller name后跟controller method作为URL传递,并将'nome'作为属性传递。此'nome'redirected到页面。

查看

'value'=> Html::a(Yii::t('app','Comprar'), Url::toRoute(['encomendas/create', 'nome' => $model->nome])),

<强>控制器

class EncomendasController 
{
    .
    .
    public function actionCreate($nome) {

        $nome = Yii::$app->request->get('nome');

        return $this->redirect('create',['nome'=>$nome]);

    }
    .
    .

}

create.php (查看)

<?php echo $nome;?>