[font="Tahoma"][rtl]سلام دوستان
من سه تا جدول به شکل زیر دارم:[/rtl][/font]
ads(id, user_id)
tender(id,user_id, ads_id)
user(id)
[font="Tahoma"][rtl] اکشن index توی TenderController رو به این شکل تغییر دادم:[/rtl][/font]
$dataProvider = new ActiveDataProvider([
'query' => Tender::find()->joinWith(['user', 'ads']),
]);
$dataProvider->setSort([
'attributes' =>
array_merge(
$dataProvider->sort->attributes, [
'user.name',
'ads.name',
'ads.user.name',
]),
]);
return $this->render('index', [
'dataProvider' => $dataProvider,
]);
[font="Tahoma"][rtl] گرید ویو هم به این شکل نمایش دادم:[/rtl][/font]
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'user.name',
'ads.name',
'amount',
'ads.user.name',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
[font="Tahoma"][rtl] تمام اطلاعات به درستی لود می شن و sort ها هم عمل می کنن به جز موقع ایکه روی ads.user.name کلیک می کنم، این پیغام رو میده:[/rtl][/font]
Column not found: 1054 Unknown column 'ads.user.name' in 'order clause'
The SQL being executed was: SELECT `tender`.* FROM `tender` LEFT JOIN `user` ON `tender`.`user_id` = `user`.`id` LEFT JOIN `ads` ON `tender`.`ads_id` = `ads`.`id` ORDER BY `ads`.`user`.`name` LIMIT 20
[font="Tahoma"][rtl] ممنون می شم راهنمایی کنید [/rtl][/font]