douao2019 2015-12-21 19:35
浏览 93
已采纳

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

I have this DetailView that renders in a view belonging to ProdutosController some fields (foto, nome, etc.). Inside the detailView is a hyperlink that displays for every recorded showed and when pressed renders a view from EncomendasController, and EncomendasController must show only the name (field nome) of the product in which i activate the 'Comprar' hyperlink.

<?= 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'])),
        ],
    ],
]) ?>

How can i pass only the field "nome" from the product detailView in which i pressed the hyperlink button to another view belonging to the other controller named EncomendasController and then show in the new view that same name?

  • 写回答

1条回答 默认 最新

  • dtn43447 2015-12-21 19:57
    关注

    You can pass the controller name followed by controller method as URL and pass 'nome' as attribute. This 'nome' will be redirected to the page.

    View

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

    Controller

    class EncomendasController 
    {
        .
        .
        public function actionCreate($nome) {
    
            $nome = Yii::$app->request->get('nome');
    
            return $this->redirect('create',['nome'=>$nome]);
    
        }
        .
        .
    
    }
    

    create.php (view)

    <?php echo $nome;?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘