مشکل در نمایش رکورد جدول های رابطه ای در گرید ویو yii2

خرید بک لینک
2تا جدول دارم که در یکیش آی دی افراد و در دیگری مشخصات رو نگهداری میکنم
وقتی می خوام در گرید ویو نمایش بدم فیلدهای جدول دوم رو نشون نمیده و (not set) میزنه

model:

کد PHP:

public function getProfile()
{
retu
$this->hasOne(Profile::className(), ['id' => 'profile']);
}


Controller:

کد PHP:

$dataProvider = new ActiveDataProvider([
'query' => Person::find()->joinWith("profile")->where(['family'=>$id]),
]);
//----------- OR ---------------------------
$dataProvider = new ActiveDataProvider([
'query' => Person::find()->with("profile")->where(['family'=>$id]),
]);


view:

کد PHP:

GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
'profile.fname',
[
'attribute' => 'profile',
'value' => 'profile.id'
],
],
]),


table person:

کد:

CREATE TABLE `person` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`code` int(11) DEFAULT NULL,
`family` int(11) DEFAULT NULL,
`profile` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `family_idx` (`family`),
KEY `profile_idx` (`profile`),
CONSTRAINT `family` FOREIGN KEY (`family`) REFERENCES `family` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `profile` FOREIGN KEY (`profile`) REFERENCES `profile` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;


table profile:

کد:

CREATE TABLE `profile` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fname` varchar(45) COLLATE utf8_bin DEFAULT NULL,
`lname` varchar(45) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

php مرکز کد های سایت...

ما را در سایت php مرکز کد های سایت دنبال می‌کنید

برچسب: نویسنده: استخدام کار بازدید: 140 تاريخ: جمعه 14 خرداد 1395 ساعت: 17:02

صفحه بندی