2016-11-19 10 views
0

나는 gridview에서 단추보기 프로필을 만들었습니다. 사용자가 단추보기 프로필을 클릭하면 user_id를 기반으로하는 프로필로 이동합니다. 여기에 코드가 있습니다. 제어기gridview에서 단추 yii2

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

요청 페이지를

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

발견되지 않는다. 코드를 수정하려면 어떻게해야합니까? 감사.

+0

가'ProjectstudentController'라는 이름의 컨트롤러? – Bizley

+0

yup @Bizley. 컨트롤러는 Projectstudent 컨트롤러입니다. – Fyp16

+0

다음과 같은 몇 가지 이유가있을 수 있습니다. 컨트롤러가 잘못된 방법으로 호출 될 수 있음 (모듈 내부 임), UrlManager 또는 서버 URL 재 작성 규칙이 잘못되었을 수 있음, Windows 이외의 환경에서 파일 이름이 잘못됨 ... 정보가 충분하지 않음 너에게 확실히 말해 줄. – Bizley

답변

0

같은 컨트롤러의 동작을 호출하려면 컨트롤러 이름을 정의 할 필요가 없습니다. 컨트롤러 이름에 문제가있을 수 있습니다.

그래서이 너무 코드를 교체하고 다시 시도

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