2016-06-22 13 views
0

Я сейчас настраивающих GridView, где каждый результат поля в одной таблице, нужно будет, чтобы стать HeaderРезультаты полевых как заголовки в cgridview

Unfortunatly Я не могу показаться, чтобы найти способ, который установит значения быть заголовок, а также позволяет значение в другой таблице

Например, мне нужно, чтобы каждый результат в поле имени будет заголовок моей cgridview

enter image description here Тогда каждый результат, который связывает вплоть до заголовок для значения, также отображаемого как значение для этого заголовка

enter image description here

Я думаю, что как-то я хотел бы добавить результаты в DataProvider, петлю вокруг DataProvider для результатов, чтобы заполнить столбцы и использовать эту функцию в качестве результата для GridView, но разрывы страниц, если я не строго определить столбцы

проблема у меня в том, что колонна продолжает отображать как HEADER1, а не данные, а данные просто данные я потянув

public function exportSearch($event_id){ 

     $query = "SELECT 
        u.prefix AS 'Title', 
        u.forename AS 'Forename', 
        u.surname AS 'Surname', 
        u.telephone AS 'Mobile Number', 
        u.email AS 'Email Address', 
        ea.checkin_status_id AS 'checked in', 
        u.update_time AS 'Register Date', 
        eg.name AS 'Event Group Registered', 
        e.name AS 'Session Registered', 
        u.bio AS 'User Information', 
        u.dob AS 'Date of Birth', 
        u.company AS 'Company', 
        u.company_role AS 'Company Role', 
        CONCAT(u2.forename, ' ', u2.surname) AS 'Guest of', 
        MAX(CASE WHEN uv.user_type_variables_id = 1 THEN uv.name ELSE NULL END) AS Header1, 
        MAX(CASE WHEN uv.user_type_variables_id = 1 THEN uv.value ELSE NULL END) AS Question1, 
        MAX(CASE WHEN uv.user_type_variables_id = 2 THEN uv.value ELSE NULL END) AS Question2, 
        MAX(CASE WHEN uv.user_type_variables_id = 3 THEN uv.value ELSE NULL END) AS Question3, 
        MAX(CASE WHEN uv.user_type_variables_id = 4 THEN uv.value ELSE NULL END) AS Question4, 
        MAX(CASE WHEN uv.user_type_variables_id = 5 THEN uv.value ELSE NULL END) AS Question5, 
        MAX(CASE WHEN uv.user_type_variables_id = 6 THEN uv.value ELSE NULL END) AS Question6 

        FROM tbl_event_attendees AS ea 

        LEFT JOIN tbl_user AS u ON ea.user_id = u.id 
        LEFT JOIN tbl_event AS e ON ea.event_id = e.id 
        LEFT JOIN tbl_event_groups AS eg on e.group_id = eg.id 
        LEFT JOIN tbl_user AS u2 ON ea.guest_of_user_id = u2.id 
        LEFT JOIN tbl_user_variables AS uv on u.id = uv.user_id 

        WHERE ea.event_id = {$event_id} 

        GROUP BY ea.id"; 




     $count=Yii::app()->db->createCommand($query)->queryScalar(); 
     return $sqlDataprovider = new CSqlDataProvider($query, array(
       'totalItemCount'=>$count, 
       'sort'=>array(
        'attributes'=>array(
        ) 
       ), 
       'pagination'=>array(
       'pageSize'=>$count, //Show all records 
     ), 
      )); 
    } 

и мое мнение

array(
      'header' => $data['Header1'], 
      'name' => 'Header1', 
      'type' => 'raw', 
      'value' => $data['Question6'], 
     ), 

и результат просто вводит то, что я хочу, в качестве заголовка в значение, и идентификатор AS в качестве заголовка.

enter image description here

ответ

1

Вы можете использовать свойство заголовка столбцов

array('name'=>'yoir_column_name', 
    'header'=> '$your_value_from_db_for_header', 
), 

должно быть нечто вроде этого

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'your_id', 
    'dataProvider'=>$dataProvider, 
    'columns'=>array(
     'your_first_column' , 
     'your_second_column', 
     array(
      'header'=> $data['Header1'], 
      'value'=> '$data->Question6', 
      'name'=> 'Question6', 
     ), 
+0

Я не уверен, если это работает. Как я хватаю его из запроса select, я вводил его так. Я добавил свой запрос на поставленный выше вопрос массив ( 'заголовок' => $ данных [ 'HEADER1'], 'имя' => 'Header1', 'тип' => 'сырой', «значение '=> $ data [' Question6 '], ), – DevAL

+0

Я добавил пример, надеюсь, полезен – scaisEdge

+0

Привет. Я попытался $ data ['Header1'], но он возвращает его только как Question6, любые идеи? – DevAL