2015-12-28 9 views
9

यह मेरी वेबसाइट के दृश्य पृष्ठ में मेरा रूप है।एक दृश्य से दूसरे दृश्य में रीडायरेक्ट - Yii2

<?= $form->field($model, 'taskID')->textInput(['readonly' => true, 'value' => Yii::$app->getRequest()->getQueryParam('id')]) ?> 

<?php 
$ifDistributor = User::find()->select('userType')->where(['username'=>Yii::$app->user->identity->username])->andWhere(['userType'=>'Distributer'])->exists(); 
$ifDistributorHasOnSiteSupport = Distributorinfo::find()->select('hasOnSiteSupport')->where(['UName'=>Yii::$app->user->identity->username])->andWhere(['hasOnSiteSupport'=>1])->exists(); 
if($ifDistributor) 
if($ifDistributorHasOnSiteSupport) 
    echo $form->field($model, 'assignedToID')->dropDownList(
     ArrayHelper::map(dektrium\user\models\User::find() 
      ->select('username') 
      ->where(['userType'=>'CCE-Distributer']) 
      ->andWhere(['distributerID'=>Yii::$app->user->getId()]) 
      ->all(),'username','username'),['prompt'=>'Select Person'] 
    ); 
else { 
       Yii::$app->session->setFlash('error', 
        "Invalid Page"); 
       //I WANT TO REDIRECT TO index.php?r=tasks/index THIS URL      

}      
?> 
<?= $form->field($model, 'remarks') ?> 
<?= $form->field($model, 'scheduledTime')->widget(DateTimePicker::classname(), [ 
       'options' => ['placeholder' => 'Enter event time ...'], 
       'pluginOptions' => [ 
        'autoclose' => true 
       ] 
      ]) ?> 
<div class="form-group"> 
    <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?> 
</div> 

के रूप में किसी और भाग में ऊपर दिखाए गए, मैं tasks/index इस यूआरएल रीडायरेक्ट करना चाहते हैं। मेरी मदद करें मैं इस में ऐसा कैसे कर सकता हूं केवल देखें।

+1

'वापसी Yii :: $ app-> प्रतिक्रिया-> रीडायरेक्ट (यूआरएल :: से (['पथ', 'आईडी' => आईडी])); '[रीडायरेक्ट()] (http: // www। yiiframework.com/doc-2.0/yii-web-response.html#redirect%28%29-detail) –

+0

@InsaneSkull ने काम किया। लेकिन 'yii \ helpers \ url;' का उपयोग करने की आवश्यकता है उत्तर के लिए धन्यवाद .. :) – Choxx

उत्तर

9

Url::to() का उपयोग करें और शीर्षलेख में yii\helpers\Url जोड़ने के लिए मत भूलना।

उदाहरण के लिए,

return Yii::$app->response->redirect(Url::to(['path', 'id' => id])); 

Redirect()

+0

और यूआरएल में आईडी जोड़ना वैकल्पिक है। – Choxx

+0

आप सही हैं। @choxx –

6

पुनर्निर्देश नियंत्रकों या कुछ संबंधित घटकों में किया जाता है, लेकिन विचारों में नहीं है, क्योंकि प्रतिपादन इस मामले में कोई मतलब नहीं है।

$this->redirect(['view', 'id' => $id]); 

ध्यान दें कि आप क्योंकि यह पहले से ही आंतरिक रूप से लागू की गई यूआरएल के निर्माण के लिए Url::to() सहायक का उपयोग करने की जरूरत नहीं है:

नियंत्रक में, आप छोटे फार्म का उपयोग कर सकते हैं।

तुम भी उपयोग कर सकते हैं:

Yii::$app->controller->redirect, अगर नियंत्रक अज्ञात है, इस प्रणाली को बुलाती है Yii::$app->response->redirectरूप इन्सेन खोपड़ी अपने जवाब में बताया गया।

जीआईआई द्वारा उत्पन्न नियंत्रक कोड पर नज़र डालने के लिए यह देखने के लिए कि सहेजने/हटाने के बाद रीडायरेक्ट का उपयोग कैसे किया जाता है।

+1

धन्यवाद @arogachev। इस पर अधिक जानकारी के लिए। इसके लिए +1। –

+0

@arogachev यह 100% सही है कि पूर्ण एमवीसी आर्किटेक्चर का पालन करने के लिए नियंत्रकों में रीडायरेक्ट किया जाता है। लेकिन, मेरे मामले में मुझे अपनी आवश्यकता के अनुसार इसे देखने की ज़रूरत थी। मैंने इसे नियंत्रक में करने की कोशिश की लेकिन कुछ जटिलता मुद्दा था। यही कारण है कि मैं देखने के साथ ऊपर जाना। मैं आपके परिदृश्य को सही ढंग से समझ गया और इस अच्छे उत्तर और सुझाव के लिए धन्यवाद। इसके लिए +1। :) – Choxx

+0

@choxx यदि आप अधिक जानकारी प्रदान करते हैं, तो शायद हम सलाह दे सकते हैं कि इसे ठीक से कैसे किया जाए। ऐसा करने का एक तरीका होना चाहिए, शायद सहायक घटक या घटना के माध्यम से, लेकिन ध्यान में नहीं। वैसे भी मदद करने के लिए खुशी हुई। – arogachev

संबंधित मुद्दे

 संबंधित मुद्दे