امروز:دوشنبه ,۱۳۹۷/۱۱/۲۹
Download http://bigtheme.net/joomla Free Templates Joomla! 3
Home / Yii1 / تنظیمات CGridView در Yii (قسمت سوم)
آموزش فریمورک یی, آموزش فریم ورک یی, فریمورک یی, فریم ورک یی, فریمورکyii, فریم ورک yii, yiiframework, yii framework,

تنظیمات CGridView در Yii (قسمت سوم)

در صفحه ی مدیریت کاربران ما ستون وضعیت را اضافه کردیم و به جای نمایش اطلاعات مستقیم از دیتابیس
که ۰ و ۱ بود از “فعال و غیر فعال ” استفاده کردیم.
اگه دقت کنین برای جستجو در این ستون ما در تکست باکس باید یا از صفر استفاده کنیم یا از یک
دقیقا همون چیزی که در دیتابیس وجود دارد .
کاری که ما میخوایم انجام بدیم اینه که به جای آن تکست باکس , یه دراپ دان بگذاریم با مقادیر ” فعال و غیر فعال”که کاربر با استفاده از آن
جستجو را انجام دهد .

برای این کار در قسمت تعریف ستون ها:

array(
'name' => 'status',
'value' => function ($data) {
switch ($data->status) {
case 0:
$status = "غیر فعال";

break;
case 1:
$status = " فعال";

break;
default:
$status = "-";
break;
}
return $status;
},
),

برای تغییر در تکس باکس یا همان جستجو CGridView گزینه ای به نام filter داریم
همانطور که در تعریف ابتدایی این ویجت filter را مساوی با $model قرار دادیم :

$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'user-grid',
'dataProvider' => $model->search(),
'filter' => $model,

در هر ستون هم میتوانیم از گزینه ی filter استفاده کنیم.
نکته : در صورتی که بخواهیم تکست باکس های بالا ی جدولمون به عبارتی جستجومون غیر فعال بشه میتونیم filter را مساوی با false قرار بدیم
خوب حالا با کد زیر ما تکست باکس را به دراپ دان تبدیل میکنیم , فقط در ستون status:

'filter' => CHtml::dropDownList('User[status]', $model->status, array(
'' => 'همه',
'۱' => 'فعال',
'۰' => 'غیرفعال',
)),

در نهایت کد زیر را خواهیم داشت

array(
'name' => 'status',
'filter' => CHtml::dropDownList('User[status]', $model->status, array(
'' => 'همه',
'۱' => 'فعال',
'۰' => 'غیرفعال',
)),
'value' => function ($data) {
switch ($data->status) {
case 0:
$status = "غیر فعال";

break;
case 1:
$status = " فعال";

break;
default:
$status = "-";
break;
}
return $status;
},
),

برای ستون تصویر هم چون جست جو نداریم filter را برابر false قرار میدهیم .کد زیر:

array(
'name' => 'path',
'type' => 'raw',
'filter'=>false,
'value' => function ($data) {
$base = '/images/';
if (!empty($data->path) && !is_null($data->path)) {
$img = CHtml::image($base . $data->path, $data->first_name, array("width" => 150, "height" => 150));
} else {
$img = '-';
}
return $img;
},
),

ccgridview

Check Also

متد findByAttributes

استفاده از متد findByAttributes() در yii1 یکی از متد های CActiveRecord متد findByAttributes می باشد …

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *