2014-02-03 2 views
0

Я унаследовал работу от коллеги (он больной) в Yii, и я должен закончить его. Я никогда не работал с Yii, и работа должна быть выполнена сегодня (мне повезло).Yii Grid View, отображающий данные двух моделей

Короче, мне нужно создать список, который показывает всех пользователей с пользовательскими данными. Моя проблема заключается в том, что часть данных не находится в таблице «users». Существует таблица «категория», в которой есть идентификатор и ИДЕНТИФИКАТОР КАТЕГОРИИ, а в таблице «users» есть столбец «категория» с идентификатором категории для этого пользователя. Что мне нужно в моем списке - это имя категории, а не идентификатор.

Что я сейчас на мой взгляд, заключается в следующем:

$dataProvider = $dataProvider=new CActiveDataProvider('users'); 
    $this->widget('bootstrap.widgets.TbExtendedGridView', array(
    'fixedHeader' => true, 
    'headerOffset' => 40, // 40px is the height of the main navigation at bootstrap 
    'type' => 'striped bordered condensed', 
    'dataProvider' => $dataProvider, 
    'responsiveTable' => true, 
    'template' => "{pager}{summary}{items}{summary}{pager}", 
    'columns' => array(
      'id', 
      'username', 
     ), 
    )); 

мне нужно добавить столбец «категории», но я понятия не имею, как получить название категории из этой таблицы. У меня есть 2 модели. 1 модель users.php модель, которая в значительной степени пустая:

class users extends CActiveRecord { 
    public $dump; 

    public static function model($className=__CLASS__) { 
     return parent::model($className); 
    } 
} 

и категория модель, которая имеет практически идентичные данные:

class category extends CActiveRecord { 
    public $dump; 

    public static function model($className=__CLASS__) { 
     return parent::model($className); 
    } 
} 

Есть ли способ, чтобы получить, что корыто данные CActiveDataProvider или я должен взломать это вручную?

+0

Создали ли вы, что классы вручную? Поскольку в нем отсутствует какой-то код ... Вы можете использовать модуль gii для создания моделей на основе таблиц базы данных: http://www.yiiframework.com/doc/guide/1.1/en/topics.gii – gSorry

+0

Я боюсь, что это это то, что я нашел. Список пользователей из таблицы «users» работает хорошо и без каких-либо ошибок. Я могу перечислить id категории, просто добавив столбец «категория» внутри представления. но мне не нужен его id, мне нужно его имя, которое хранится в другой таблице. – Ljudotina

+0

Адрес: hey, Категория связана с пользователем? Если это так, вам нужно добавить отношение в обеих моделях, а затем выполнить пользовательский метод в таких пользователях, как 'getUsersWithCategory()', который возвращает 'CActiveDataProvider' с' с ключевым словом '' '' 'для загрузки категорий. Затем в представлении вы просто показываете $ user-> category – JorgeeFG

ответ

1

в вашей модели пользователей вы должны иметь отношения() метод колдунья выглядит следующим образом:

public function relations() 
{ 
    return array(
     'category' => array(self::BELONGS_TO, 'category', 'category_id'), 
    ); 
} 

Затем вы можете использовать его как это:

$user->category->name; 
+1

можете у вас помогите мне, где мне нужно использовать этот код: $ user-> category-> name – Erum

Смежные вопросы