با سلام خدمت کاربران گرامی سایت پی وی لرن و آن دسته از کاربرانی که به زبان PHP علاقه دارند. این دوره آموزش CakePHP مخصوص آن ها تهیه شده تا مهارت و تسلط خود را بر این زبان با یادگیری CakePHP به حد کمال برسانند و با کمک آن به یک برنامه نویس حرفه ای در عرصه PHP تبدیل شوند. در جلسه گذشته آموختیم که چگونه از View Events ها استفاده نماییم و آن ها را به کار ببریم. در این جلسه و در ادامه این دوره به آموزش کار با پایگاه داده در CakePHP می پردازیم.
کار با پایگاه داده در CakePHP بسیار ساده است.
در این جلسه ما به آموزش CRUD خواهیم پرداخت که مخفف (Create, Read, Update, Delete) است یعنی (ایجاد، خواندن، به روز رسانی و حذف).
پیش از شروع آموزش کار با پایگاه داده در CakePHP باید جدول کاربر زیر را در پایگاه داده ایجاد نمایید:
1 2 3 4 5 6 7 | CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE = MyISAM AUTO_INCREMENT = 7 DEFAULT CHARSET = latin1 |
علاوه بر این، بایستی پایگاه داده خود را در فایل config / app.php پیکربندی کنیم.
برای قرار دادن یک رکورد در پایگاه داده، ابتدا باید با استفاده از جدول TableRegistry یک table ایجاد نماییم.
می توان نمونه را از رجیستری با استفاده از ()get دریافت کرد.
روش ()get نام جدول پایگاه داده را به عنوان یک استدلال دریافت می کند.
از این نمونه برای ایجاد یک entity جدید استفاده می شود.
مقادیر لازم را با نمونه ای از entity جدید تنظیم کنید.
اکنون باید با استفاده از روش ()Save با مثال ClassRegistry ، رکورد جدیدی را در پایگاه داده وارد کنیم.
تغییرات زیر را در فایل 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/add', ['controller' => 'Users', 'action' => 'add']); $routes->fallbacks('DashedRoute'); }); Plugin::routes(); |
یک فایل UserController.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 22 23 24 | <?php namespace App\Controller; use App\Controller\AppController; use Cake\ORM\TableRegistry; use Cake\Datasource\ConnectionManager; use Cake\Auth\DefaultPasswordHasher; class UsersController extends AppController{ public function add(){ if($this->request->is('post')){ $username = $this->request->data('username'); $hashPswdObj = new DefaultPasswordHasher; $password = $hashPswdObj->hash($this->request->data('password')); $users_table = TableRegistry::get('users'); $users = $users_table->newEntity(); $users->username = $username; $users->password = $password; if($users_table->save($users)) echo "User is added."; } } } ?> |
یک دایرکتوری Users at src/Template ایجاد نمایید و زیر آن دایرکتوری یک View file فراخوانی شده add.ctp بسازید و سپس کد زیر را در فایل کنترل کننده کپی نمایید.
src/Template/Users/add.ctp
1 2 3 4 5 6 7 | <?php echo $this->Form->create("Users",array('url'=>'/users/add')); echo $this->Form->input('username'); echo $this->Form->input('password'); echo $this->Form->button('Submit'); echo $this->Form->end(); ?> |
مثال بالا را با مراجعه به URL زیر اجرا کنید.
http://localhost:85/CakePHP/users/add
پس از اجرا، خروجی زیر را دریافت خواهید کرد.
در این جلسه با آموزش کار با پایگاه داده در CakePHP همراه شما بودیم.
در جلسه بعد با آموزش مشاهده رکورد ها در پایگاه داده می پردازیم.
با پی وی لرن همراه باشید.