2015-12-21 3 views
0

У меня есть этот DetailView, который отображает в поле зрения ProdutosController некоторые поля (foto, nome и т. Д.). Внутри detailView есть гиперссылка, которая отображается для каждого записанного показанного и при нажатии отображает вид от EncomendasController, а EncomendasController должен показывать только имя (полевой номер) продукта, в котором я активирую гиперссылку «Comprar».Yii2 - Пропустить поле таблицы для просмотра с другого контроллера

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

Как я могу передать только поле «Нома» из продукта DetailView, в котором я нажал кнопку с гиперссылкой на другой точке зрения, принадлежащей другому контроллеру имени EncomendasController, а затем показать в новом виде, что же имя?

+0

Вы хотите передать только имя к другому контроллеру, и в этом контроллере вы хотите отобразить одну страницу и повторить это имя? Я прав ? –

+0

Да, вы правы. –

+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;?> 
+0

Хорошо. Но как передать только $ model-> nome и его значение из записи, связанной с detailView, когда пользователь нажимает на гиперссылку. –

+0

ОШИБКА НЕ НАЙДЕНО # 404, в http: // localhost: 8888/beladona/web/index.php? R = encomendas% 2Fcreate% 3Fnome% 3DRamo + Temptation –

+0

Вы создали страницу create.php @ AndréCastro? –

Смежные вопросы