Geethasj
(Renuka)
1
Hi,
How to join two table in relation in model…
For example,
I have table name user and userdetails I am writing User model in relation,
‘userdetails’=>array(self::HAS_ONE, ‘Userdetails’, ‘user_id’),
Its working fine,Now i want to join details table and review table in user model relation.
‘review’ => array(self::BELONGS_TO, ‘Review’, ‘’,‘on’=>(‘inner join details on review.details_id = details.bid_id’)),
cant work…
How to write relation for that?
If table ‘reviews’ has a key named ‘userdetail_id’ to join with ‘userdetails’ table,
you can solve your problem using ‘through’ attribute of relation.
'reviews'=>array(self::HAS_MANY,'Review',array('userdetail_id'=>'id'),'through'=>'userdetails'),
So from user model you can type:
$reviews = $userModel->reviews
Geethasj
(Renuka)
3
Hi,
Thanx for ur reply how to use Search function?
I cant Show details in $this->widget(‘bootstrap.widgets.TbGridView’, $this->widget(‘bootstrap.widgets.TbGridView’, array(
'id'=>'deposit-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'ajaxUpdate'=>false,
'columns'=>array(
'reviews',
What are you displaying? User table or Reviews table for a specific user?
What is $model? User or Review model?
redguy
(Maciej Lizewski)
5
Hi,
I want to Show details in review table,
public $reviews;
array(‘reviews’, ‘safe’, ‘on’=>‘search’),
$criteria->compare(‘reviews.review_name’,$this->reviews,true,‘OR’);
In view page i show,
array(
'header'=>'Review name',
'name'=>'reviews',
'value'=>'$data->reviews->review_name'),
No data Showing why what’s s wrong in my code?
If you want to display reviews in a table you have to define $dataProvider.
$data = $modelUser->reviews;
$dataProvider = new CArrayDataProvider($data);
$this->widget('bootstrap.widgets.TbGridView', array(
'id'=>'deposit-grid',
'dataProvider'=>$dataProvider,
'filter'=>$model,
'ajaxUpdate'=>false,
'columns'=>array(
'field_of_review_model',
Hi,
If You dont mind plz explain me the below line,
$data = $modelUser->reviews;
$dataProvider = new CArrayDataProvider($data);
Where i put this above coding in model or view page…
You should put this code in Controller, that passes to View $dataProvider
In Controller:
function actionGrid()
{
...
...
$data = $modelUser->reviews;
$dataProvider = new CArrayDataProvider($data);
return array('grid', array('dataProvider' => $dataProvider));
}