yii:Unable to get the picture using “through”

2019-03-06 19:27发布

I am a yiibie, and i am stuck in a problem. I have made a file named ngopage.php in my view file and i am able to get the data from my Ngo table but I am unable to get the Picture of the user who is writing any comment for an ngo against a specific id of an ngo. The picture of the user is in the profile table and the reviews are coming from the userRateReviewNgos table. I am also able to get the reviews but not getting the picture of the user. I tried the through method in the relation function of the userRateReviewNgos model which gives an exception Property "CBelongsToRelation.through" is not defined. Please help me with this. thank you. This is the code for my UserRateReviewNgos model

<?php

/**
 * This is the model class for table "user_rate_review_ngo".
 *
 * The followings are the available columns in table 'user_rate_review_ngo':
 * @property integer $id
 * @property integer $rate
 * @property string $review
 * @property integer $user_id
 * @property integer $ngo_id
 *
 * The followings are the available model relations:
 * @property Ngo $ngo
 * @property User $user
 */
class UserRateReviewNgo extends CActiveRecord
{
    /**
     * Returns the static model of the specified AR class.
     * @param string $className active record class name.
     * @return UserRateReviewNgo the static model class
     */
    public static function model($className=__CLASS__)
    {
        return parent::model($className);
    }

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

    /**
     * @return array validation rules for model attributes.
     */
    public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('rate, review, user_id, ngo_id', 'required'),
            array('rate, user_id, ngo_id', 'numerical', 'integerOnly'=>true),
            array('review', 'length', 'max'=>500),
            // The following rule is used by search().
            // Please remove those attributes that should not be searched.
            array('id, rate, review, user_id, ngo_id', 'safe', 'on'=>'search'),
        );
    }

    /**
     * @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(
            'ngo' => array(self::BELONGS_TO, 'Ngo', 'ngo_id'),
            'user' => array(self::BELONGS_TO, 'User', 'user_id'),
'profile' => array(self::BELONGS_TO, 'profile', 'id','through'=>'user'),
                    );// here i have user the through method for getting picture form profile table
    }

    /**
     * @return array customized attribute labels (name=>label)
     */
    public function attributeLabels()
    {
        return array(
            'id' => 'ID',
            'rate' => 'Rate',
            'review' => 'Review',
            'user_id' => 'User',
            'ngo_id' => 'Ngo',
        );
    }

    /**
     * Retrieves a list of models based on the current search/filter conditions.
     * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
     */
    public function search()
    {
        // Warning: Please modify the following code to remove attributes that
        // should not be searched.

        $criteria=new CDbCriteria;

        $criteria->compare('id',$this->id);
        $criteria->compare('rate',$this->rate);
        $criteria->compare('review',$this->review,true);
        $criteria->compare('user_id',$this->user_id);
        $criteria->compare('ngo_id',$this->ngo_id);

        return new CActiveDataProvider($this, array(
            'criteria'=>$criteria,
        ));
    }
}

This is the ngopage.php from view file

<div class="profile">
                                             <div class="row" style="background-color:">
                                                 <div class="col-md-4">
                                                     <img src="<?php echo YII::app()->request->baseUrl;?>/img/<?php echo $model->image;?>" class="img-responsive"><br>
                                                 </div>
                                                 <div class="col-md-4">
                                                     <h2 class="profile-name" style="color:white;"><?php echo $model->ngo_name;?></h2>
                                                     <div class="rating">
                                                         <span class="glyphicon glyphicon-star 2x" aria-hidden="true"></span>
                                                         <span class="glyphicon glyphicon-star 2x" aria-hidden="true"></span>
                                                         <span class="glyphicon glyphicon-star 2x" aria-hidden="true"></span>
                                                         <span class="glyphicon glyphicon-star 2x" aria-hidden="true"></span>
                                                         <span class="glyphicon glyphicon-star 2x" aria-hidden="true"></span>
                                                     </div><!--rating ending here-->
                                                     <h3>Owner:</h3>
                                                     <p>Mr. Asad Abdul Jabbar</p>
                                                      <h3>Address:</h3>
                                                     <address>

                                               <p>  <?php echo $model->address;?><br></p>

                                          </address>
                                                      <h3>Requirements:</h3>
                                                      <p>-Volunteers required for refugees settlement in Kashmir<br>-Cash for food and water of refugees<br>-Donations can be transferred via online banking, AC no.<em>12345</em></p>
                                                     <h3>Write Review</h3>
                                                     <textarea type="text" class="form-control" rows="3" cols="4" name="requirements" value=""></textarea><br>
                                                     <button class="btn btn-primary">Share</button>
                                                 </div>
                                                 </div><!--row ending here--><br>


                                          </div><!--profile ending here--><br>

                                          <div class="story-content" style="background-color:white;">
                                             <div class="row">
                                                 <div class="col-md-8 col-md-offset-2 vol-stories">
                                                     <div class="media">
                                        <div class="media-left">
                                            <a href="user-profile.php">
                                                <?php $modelnew=$model->userRateReviewNgos; 
                                                foreach($modelnew as $new)
                                                {
                                               ?>

                                              <img class="media-object" src="<?php echo YII::app()->request->baseUrl;?>/img/<?php echo $new->profile->picture;?>">
                                          </a>
                                       </div>
                                        <div class="media-body"><strong><?php echo $new->user->username; ?></strong>
                                            <p style="color:black;"><?php echo $new->review;?></p>
                                          <?php   }
                                                ?>
                                              </div>
                                                         <button class="btn btn-primary btn-xs">Edit</button>
                                                         <button class="btn btn-primary btn-xs">Delete</button>


                                              </div><!--Media ending here--> 

                                                 </div>
                                             </div><!--row ending here--><hr class="half">

                                           </div>

标签: php yii
1条回答
别忘想泡老子
2楼-- · 2019-03-06 20:22

For this i think you should use a has one relation

'profile' => array(self::HAS_ONE,    'Profile', 'user_id'),
查看更多
登录 后发表回答