اکشن های ویرایش و حذف

در قسمت های قبلی با اکشن های view , index , admin , create آشنا شدیم.
از اکشن های باقی مونده ویرایش و حذف مونده که توی این جلسه اونارو بررسی میکنیم.
ابتدا اکشن ویرایش actionUpdate
همانند اکشن ثبت اطلاعاتی را به فرم ارسال میکنیم و پس از پست اون اطلاعات , اون هارو در دیتابیسمون ذخیره میکنیم.
در actionCreate شما یه مدل و new میکردین و ارسال میکردین. توی این اکشن شما اطلاعاتی که میخواهیدو با استفاده از کلید اصلیشپیدا میکنین و اونو به فرم ارسال میکنین.
در کنترلرمون : userController اکشن مورد نظرمونو میاریم :

public function actionUpdate($id)
{
$model=$this->loadModel($id);

// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);

if(isset($_POST['User']))
{
$model->attributes=$_POST['User'];
if($model->save())
$this->redirect(array('view','id'=>$model->id));
}

$this->render('update',array(
'model'=>$model,
));
}

این اکشن همانند اکشن view یه ورودی دریافت میکنه که شناسه یا کلید اطلاعاتمونه . با استفاده از

$model=$this->loadModel($id);

که قبلا هم باهاش اشنا شده بودیم کد زیر را اجرا میکنه :

User::model()->findByPk($id)

در واقع با استفاده از کد بالا شما این کوئری را اعمال کرده اید

select * from user where id=$id

پس از این که اطلاعاتو خوندیم با استفاده از render اونارو به ویوی update میفرستیم.
دقیقا مثل اکشن ثبت اطلاعاتو به ویوی فورم ارسال میکنیم

breadcrumbs=array(
'Users'=>array('index'),
$model->id=>array('view','id'=>$model->id),
'Update',
);

$this->menu=array(
array('label'=>'List User', 'url'=>array('index')),
array('label'=>'Create User', 'url'=>array('create')),
array('label'=>'View User', 'url'=>array('view', 'id'=>$model->id)),
array('label'=>'Manage User', 'url'=>array('admin')),
);
?>

Update User id; ?>

renderPartial('_form', array('model'=>$model)); ?>

در فورم شما اگه دقت کنین
میبینین که اون قسمتی که تکست باکسمونو ایجاد میکنه هم $model را داریم هم اتریبیوته مونو

textField($model,'email',array('size'=>60,'maxlength'=>250)); ?>

سیستم به این صورت مقدار email را در value ی تکس باکس قرار میده

http://localhost:1007/index.php?r=user/update&id=1

شکل زیر را ببینید
 آموزش فریمورک یی, آموزش فریم ورک یی, فریمورک یی, فریم ورک یی, فریمورکyii, فریم ورک yii, yiiframework, yii framework,

سیستم اطلاعاتو به راحتی در محل مورد نظر قرار میده.
پس از تغییر میتونین save را بزنین و اطلاعات به actionUpdate ارسال میشه و با استفاده از $model->attributes ذخیره میشه .
به همین راحتی .

اکشن بعدی اکشن حذف است actionDelete

public function actionDelete($id)
{
$this->loadModel($id)->delete();

// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if(!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
}

هنگامی که شما در مدیریت actionadmin بر روی تصویر حذف کلیک میکنین . اطلاعات از طریق ajax به اکشن حذف ارسال میشه .
سیستم با استفاده از شناسه ارسالی رکورد مورد نظر را پیدا میکنه و عملیات حذف رو انجام میده
ابتدا همانند اکشن های view و update اطلاعات خوانده میشه
User::model()->findByPk($id)
سپس با استفاده از delete اونا حذف میشن.
معادل کوئریه زیر

delete from user where id = $id

این بود عملیات crud با استفاده از فریم ورک yii خیلی آسووون و راحت اطلاعاتتونو مدیریت کنین

دیدگاهتان را بنویسید

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