در صفحه ی مدیریت کاربران ما ستون وضعیت را اضافه کردیم و به جای نمایش اطلاعات مستقیم از دیتابیس
که ۰ و ۱ بود از “فعال و غیر فعال ” استفاده کردیم.
اگه دقت کنین برای جستجو در این ستون ما در تکست باکس باید یا از صفر استفاده کنیم یا از یک
دقیقا همون چیزی که در دیتابیس وجود دارد .
کاری که ما میخوایم انجام بدیم اینه که به جای آن تکست باکس , یه دراپ دان بگذاریم با مقادیر ” فعال و غیر فعال”که کاربر با استفاده از آن
جستجو را انجام دهد .
برای این کار در قسمت تعریف ستون ها:
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;
},
),