Yii Framework Forum: Не Могу Связать 2 Таблицы - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Не Могу Связать 2 Таблицы Rate Topic: -----

#1 User is offline   seobot 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 22
  • Joined: 20-October 12
  • Location:Russia

Posted 31 December 2012 - 07:59 AM

Добрый день. Не могу связать 2 таблицы.

В таблице Action, есть поля Id, Name(прим. Id1-Купить, которая в связи идет к таблице Post, поле action_id)

Не могу понять, как сделать, чтобы при выборке, вместо action_id из таблицы Post, выводилось Name из Action?

Posted Image

<?php

class MainController extends Controller
{
    public function actionIndex()
    {
        $dataProvider = Post::model()->findPost();

        $this->render('/site/index',array('dataProvider' => $dataProvider));

    }
}


    public function tableName()
    {
        return 'post';
    }

    /**
     * @return array relational rules.
     */
    public function relations()
    {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array('user'   => array(self::BELONGS_TO,
                                       'User',
                                       'user_id'),
                     'action' => array(self::BELONGS_TO,
                                       'Action',
                                       'action_id'),
                     'object' => array(self::BELONGS_TO,
                                       'Object',
                                       'object_id'),);
    }

    /**
     * @return CActiveDataProvider the data provider that can return the models based on the data conditions.
     */
    public function findPost()
    {
        return new CActiveDataProvider($this,array('pagination' => array('pageSize' => 2,
                                                                         'pageVar'  => 'pages'),
                                                   'sort'       => array('defaultOrder' => array('id'      => CSort::SORT_DESC,
                                                                                                 'sortVar' => 'sort'))));
    }


/* @var $this SiteController */

$this->widget('bootstrap.widgets.TbGridView',array('type'         => 'striped',
                                                   'dataProvider' => $dataProvider,
                                                   'template'     => "{summary}{items}\n{pager}",
                                                   'columns'      => array(array('name'   => 'date',
                                                                                 'header' => 'Дата'),
                                                                           array('name'   => 'action_id',
                                                                                 'header' => 'Действие',
                                                                                 'sortable' => false),
                                                                           array('name'   => 'object_id',
                                                                                 'header' => 'Объект',
                                                                                 'sortable' => false),
                                                                           array('name'   => 'room',
                                                                                 'header' => 'Комнат',
                                                                                 'sortable' => false),
                                                                           array('name'   => 'city',
                                                                                 'header' => 'Город',
                                                                                 'sortable' => false),
                                                                           array('name'     => 'street',
                                                                                 'header'   => 'Улица',
                                                                                 'sortable' => false),
                                                                           array('name'   => 'm2',
                                                                                 'header' => 'M<sup>2</sup>',
                                                                                 'sortable' => false),
                                                                           array('name'     => 'descr_post',
                                                                                 'header'   => 'Описание',
                                                                                 'sortable' => false),
                                                                           array('name'     => 'phone',
                                                                                 'header'   => 'Телефон',
                                                                                 'sortable' => false),
                                                                           array('name'     => 'cost',
                                                                                 'header'   => 'Цена <i>(руб.)</i>',
                                                                                 'sortable' => false),
                                                            /*
                                                                           array('class'       => 'bootstrap.widgets.TbButtonColumn',
                                                                                 'htmlOptions' => array('style' => 'width: 50px'),
                                                                                 'visible'=>!Yii::app()->user->isGuest)
                                                            */
                                                       )));


class Action

class Action extends CActiveRecord
{

.....

    /**
     * @return string the associated database table name
     */
    public function tableName()
    {
        return 'action';
    }


    /**
     * @return array relational rules.
     */
    public function relations()
    {
        return array(
            'posts' => array(self::HAS_MANY, 'Post', 'action_id'),
        );
    }


Форум курил, гуглом гуглил - ничего не на гуглил((
0

#2 User is offline   Georgy90 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 03-March 12

Posted 03 January 2013 - 04:40 AM

В примере демо блога погляди, там реляционные связи используются при выводе автора и статуса сообщений, конкретно файлы моделей: Post.php, Lookup.php и файлы представлений для post.
0

#3 User is offline   seobot 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 22
  • Joined: 20-October 12
  • Location:Russia

Posted 03 January 2013 - 05:33 AM

Да все уже порешал проблему)))
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users