2015-12-21 95 views
-2
  1. 我正在Yii2中創建一個在線商店。
  2. 我有一個名爲產品的mysql表,用於在 視圖中顯示產品。此表屬於ProductsController和Products模型。該視圖使用ListView和$ dataProvider來顯示產品圖片和一些相關的文本和整型值,例如名稱,價格等......它也就像顯示每個記錄中顯示的按鈕一樣。
  3. 當我點擊購買按鈕時,它會轉到另一個名爲EncomendasController的控制器,另一個視圖是Encomendas的另一個表格,它是客戶端輸入個人數據(名稱,地址等)的表單字段。
  4. 我需要做的是:當客戶端在ProductsController中單擊查看按鈕以從listView中購買項目時,只需要將該項目字段名稱存儲起來,或許存儲在變量中,並且在與EncomendasController相關的新視圖中產品選擇名稱將顯示在收集客戶個人數據的字段上方以完成銷售過程。

任何想法?Yii2 - 保存php變量中的當前數據庫字段值

編輯 - 的DetailView與購買按鈕

<?= 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','PURCHASE'), Url::toRoute(['encomendas/create'])), 
     ], 
    ], 
]) ?> 
+0

如果您正在使用帖子並提交,請在GET中傳遞'Products'模型的'id'或存儲爲隱藏輸入。 – ineersa

+0

好的。我閱讀了有關該程序,SESSION或GET似乎很容易處理。但是,如何在var中只存儲產品,我按下了購買按鈕。這可能很困難,因爲所有產品都由ListView小部件一次顯示,並且它是$ dataProvider。我如何告訴框架來存儲特定的產品ID或名稱? –

回答

1

我不知道,我知道你正在努力實現的權利是什麼,但你可以將產品ID轉移到下一個控制器,它EncomendasController,作爲GET參數,然後在該控制器中通過數據庫加載與該產品相關的所有信息。爲此,您需要在其末尾添加類似'&id='.$dataProvider->id的內容,以更改爲每個產品生成的網址。

+0

但是,當我在與ProductsController相關的視圖中按下購買按鈕時,它使用此URL呈現來自encomendasController的視圖:http:// localhost:8888/beladona/web/index.php?r = encomendas%2Fcreate –

+0

在上述Url它無法區分我想要傳遞給新控制器的產品。 –

+0

向我們顯示您購買按鈕的代碼。正如Aleks所說,只需將id添加到您的鏈接中,並且您將在GET變量中將您的產品id添加到控制器中。 – ineersa