با سلام خدمت کاربران گرامی سایت پی وی لرن و آن دسته از کاربرانی که به زبان PHP علاقه دارند. این دوره آموزش CakePHP مخصوص آن ها تهیه شده تا مهارت و تسلط خود را بر این زبان با یادگیری CakePHP به حد کمال برسانند و با کمک آن به یک برنامه نویس حرفه ای در عرصه PHP تبدیل شوند. در جلسه گذشته آموختیم که چگونه می توان به روز رسانی یک رکورد بپردازیم. در این جلسه به آموزش حذف یک رکورد در پایگاه داده می پردازیم و می آموزیم که چگونه می توان یک رکورد را از پایگاه داده حذف کرد.
برای به روز رسانی یک رکورد در پایگاه داده، ابتدا باید با استفاده از جدول TableRegistry یک table ایجاد نماییم.
می توان نمونه ای را از رجیستری با استفاده از ()get دریافت کرد.
روش ()get نام جدول پایگاه داده را به عنوان یک argument دریافت می کند.
حالا از این نمونه جدید برای حذف یک رکورد استفاده می نماییم.
روش ()get را با استفاده از نمونه جدید و کلید اصلی اقدام به پیدا کردن رکوردی می کند که قرار است در یک نمونه دیگر ذخیره شود.
از این نمونه برای تنظیم مقادیر جدید که می خواهید به روز رسانی نمایید استفاده کنید تا روش delete را فراخوانی کرده و رکورد مورد نظر را از پایگاه داده حذف نمایید.
تغییر زیر را در فایل config/routes.php همانطور که در کد زیر نشان داده است اعمال نمایید.
config/routes.php
1 2 3 4 5 6 7 8 9 10 11 | <?php use Cake\Core\Plugin; use Cake\Routing\RouteBuilder; use Cake\Routing\Router; Router::defaultRouteClass('DashedRoute'); Router::scope('/', function (RouteBuilder $routes) { $routes->connect('/users/delete', ['controller' => 'Users', 'action' => 'delete']); $routes->fallbacks('DashedRoute'); }); Plugin::routes(); |
یک فایل UsersController.php در src/Controller/UsersController.php ایجاد کرده و سپس کد زیر را در فایل کنترل کننده کپی کنید.
src/controller/UsersController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php namespace App\Controller; use App\Controller\AppController; use Cake\ORM\TableRegistry; use Cake\Datasource\ConnectionManager; class UsersController extends AppController{ public function index(){ $users = TableRegistry::get('users'); $query = $users->find(); $this->set('results',$query); } public function delete($id){ $users_table = TableRegistry::get('users'); $users = $users_table->get($id); $users_table->delete($users); echo "User deleted successfully."; $this->setAction('index'); } } ?> |
حالا یک فایل خالی View file زیر دایرکتوری فراخوانی شده Users به عنوان delete.ctp بسازید.
src/Template/Users/delete.ctp
یک Users دایرکتوری در src/Template ایجاد نمایید اما اگر این دایرکتوری از قبل وجود دارد لازم به انجام این کار نیست.
در زیر آن دایرکتوری یک View file فراخوانی شده index.ctp بسازید و سپس کد زیر را در فایل کنترل کننده کپی نمایید.
src/Template/Users/index.ctp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <a href = "add">Add User</a> <table> <tr> <td>ID</td> <td>Username</td> <td>Password</td> <td>Edit</td> <td>Delete</td> </tr> <?php foreach ($results as $row): echo "<tr><td>".$row->id."</td>"; echo "<td>".$row->username."</td>"; echo "<td>".$row->password."</td>"; echo "<td><a href='".$this->Url->build (["controller" => "Users","action" => "edit",$row->id])."'>Edit</a></td>"; echo "<td><a href='".$this->Url->build (["controller" => "Users","action" -> "delete",$row->id])."'>Delete</a></td></tr>"; endforeach; ?> </table> |
مثال بالا را با مراجعه به URL زیر اجرا کنید و بر روی لینک Delete کلیک کنید تا رکورد حذف شود.
http://localhost:85/CakePHP/users
پس از بازدید از آدرس فوق و کلیک بر روی لینک حذف، خروجی زیر دریافت خواهید کرد که در آن می توانید رکورد را حذف کنید.
در این جلسه با آموزش حذف یک رکورد در پایگاه داده همراه شما بودیم.
در جلسه بعد به آموزش کار با Authentication در CakePHP می پردازیم.
با پی وی لرن همراه باشید.