2016-11-19 83 views
0

我已經在gridview創建按鈕視圖配置文件。當用戶點擊按鈕查看配置文件時,它將轉到基於user_id的配置文件。這是代碼。gridview中的按鈕yii2

 <?= GridView::widget([ 
'dataProvider' => $dataProvider, 
'id' => 'mygrid', 
'columns' => [ 
    ['class' => 'yii\grid\SerialColumn'], 
    'user_id', 
    'project_name', 
    ['class' => 'yii\grid\ActionColumn'], 
    [ 
     'label' => 'View Profile', 
     'format' => 'raw', 
     'content' => function($model) { 
      return Html::a('View', ['projectstudent/viewprofile', 'id' =>  $model->user_id], 
       ['class' => 'btn btn-primary']); 
     } 
    ], 
] 
]); ?> 

在控制器

public function actionViewprofile($id) 
{ 
return $this->render('profile', [ 
     'model' => $this->findModel($id), 
    ]); 
} 

請求的頁面未找到。我如何修復代碼?謝謝。

+0

名爲'ProjectstudentController'控制器? – Bizley

+0

@ @Bizley。控制器是Projectstudentcontroller。 – Fyp16

+0

可能有幾個原因:控制器可能以錯誤的方式被調用(在模塊內),UrlManager或服務器url重寫規則可能是錯誤的,在非Windows環境下文件名可能是錯誤的情況...沒有足夠的信息從你那裏肯定地告訴。 – Bizley

回答

0

這裏可能是你指定的控制器名稱的問題,如果你想調用同一個控制器的動作,不需要定義控制器名稱。

所以用這個代替所以你的代碼,然後再試一次

return Html::a('View', ['viewprofile', 'id' =>$model->user_id], 
      ['class' => 'btn btn-primary']);