سلام
خب توی پست قبل روش create و delete کردن اطلاعات از database رو گفتیم.
تو این پست بریم راجع به update , show صحبت کنیم.
میخوایم یک user با Id مورد نظر از database بگیریم و نمایش بدیم. برای این کاری توی controller مینویسیم:
متد findUser در تصویر بالا Id مورد نظر رو به model میده و model توی دیتابیس کاربری با این Id پیدا کند و برگرداند.
توی مدل متد where چک میکند که آیا توی دیتابیس id با مقدار وارد شده داریم یا خیر
اگر بود اون رو get میکنه و توی متغیر row$میریزه. بعد با استفاده از متد ()getRow کل اطلاعات کاربر را به
controller برمیگرداند و بعد از طریق متد view اطلاعات را به view پاس میده.
توی ویرایش سناریو ماجرا اینطوریه که اول اطلاعات کاربر مورد نظر را میگیریم و بعد به view مورد نظر پاس میدیم. تا اینجا کاملا شبیه show هست. اما یک تفاوت دارد:
اطلاعات ارسالی رو داخل form باید نمایش بدیم
مثل عکس زیر
یعنی توی input مقدار value برابر است با مقدار گرفته شده از دیتابیس
<input type="text" name="name" value="<?php echo $user->name?>" >
یک نکته ی دیگه اینه که برای این کار یک متد توی controller بنام مثلا edit درست میکنیم و داده ها میگیریم و به view پاس میدیم. و همانطور که گفتیم توی فرم نمایش میده. نکته ی ماجرا اینجاست که action رو روی متدی بنام update تنظیم میکنیم که داده های جدید برای ویرایش به این متد بروند و کدهای مربوط به ویرایش توی این متد نوشته میشود. به این صورت:
public function edit($id) { $data['user']=$this->user->findUser($id); echo view('users/edit',$data); } public function update($id) { }
توی متد update اطلاعات را یکی یکی میگیریم:
$name=$this->request->getPost('name'); $email=$this->request->getPost('email');
و بعد میفرستیم به مدل
$this->user->editUser( $id, $name, $email);
خب همینطور که میبینید اول با متد where کاربری با Id مورد نظر رو پیدا میکنیم و بعد مقادیر جدید رو set میکنیم و در آخر update میکنیم.
و تمام.
این هم از update ??