PDA

View Full Version : اضافه کردن یک ستون در گریدویو و دادن مقدار به اون



ehsaun_kkt
یک شنبه 09 اسفند 1394, 17:16 عصر
سلام

من یه فانکش نوشتم که میره توی دیتابیس و نوع غذا رو بر اساس آیدی کتوگوری میگره ، حالا میخوام نوع غذایی رو که بر می گردونه (مثلا: دسر) در گریدویو صفحه ایندکس برای هر رکورد نمایش بدم یعنی یه ستون در گریدویو اضافه کنم و نوع غذاها رو درون اون بنویسم ، چطوری باید اینکار رو بکنم؟




public function getCategorys() {
$category = FoodCategory::find()->where(['category_id' => $this->category_id])->one();echo $category->title;
}

ehsaun_kkt
سه شنبه 11 اسفند 1394, 09:03 صبح
دریغ از یه پاسخ ... یعنی تا حالا برای کسی پیش نیومده که بخواد توی گرید ویو یه ستون اضافه کنه و مقدار بهش بده؟ اساتید yii کجان؟

mhf693
چهارشنبه 12 اسفند 1394, 02:24 صبح
.سلام
اگه منظورت رو درست متوجه شده باشم یه ستون می خوای تو گریدویو داشته باشی که متناظر با اون فیلدی تو مدل(جدول) نداری. خب کافیه متناظر با اون ستون یه متد تعریف کنی که اولش کلمه get باشه یعنی همین مثالی که نوشتی درسته و اسم ستونش تو گریدویو می شه categorys به جای echo هم باید return بنویسی.

ehsaun_kkt
چهارشنبه 12 اسفند 1394, 11:23 صبح
هزاران بار تشکر:)

فقط یک نکته: وقتی روی هد هر جدول کلیک میکنم storش میکنه ، برای
categorys
چطور باید فعالش کنم؟

اصلا این کوئری که من زدم استاندارده؟

139379

mhf693
چهارشنبه 12 اسفند 1394, 12:34 عصر
اگه بخوای sort بکنی بهتره کلا اون تابع getCategorys رو استفاده نکنی و از کدی شبیه کد زیر استفاده کنی :


$dataProvider = new ActiveDataProvider ( [
'query' => Category::find ()->select(['category.*','(select title from food_category where food_category.category_id = category.id) as t'])->asArray(),
'sort' => [
'attributes' => [
't',
//other attributes...
],
]
] );

من اسم جداولت رو فرضا category و food_category در نظر گرفتم.