Untuk membuat aplikasi CRUD (Create-Read-Update-Delete) secara otomatis, sebagai contoh buatlah 1 buah database di mysql dengan nama dbcakephp
, kemudian didalam database tersebut buatlah 2 buah table yaitu CATEGORIES
dan POSTS
. Table CATEGORIES
akan berisi data-data kategori, sedangkan di table POSTS
akan berisi data-data postingan dengan menampilkan kategorinya. Format foreign key yaitu namatableforeignsingular_id
. Konvention penamaan table bisa dilihat di NAMING CONVENTION CAKEPHP. Script buat table bisa dilihat dibawah ini :
CREATE TABLE `categories` ( |
CREATE TABLE `posts` ( |
CATEGORIES | POSTS |
Setelah kita selesai membuat database dan 2 table tersebut, buatlah 1 buah project dengan nama ‘newcake3’. Pembuatan projek bisa dilihat di MEMBUAT PROJEK BARU MENGGUNAKAN FITUR ‘BAKE’. Setelah itu bukalah command prompt, untuk melakukan generate controller, model dan views. Dicontoh ini kita akan mengenerate untuk table CATEGORIES :
C:\xampp2\htdocs\newcake3>cake bake all
Baking model class for Category… Creating file C:\xampp2\htdocs\newcake3\models\category.php You can download SimpleTest from http://simpletest.org Baking test fixture for Category… Creating file C:\xampp2\htdocs\newcake3\tests\fixtures\category_fixture.php Creating file C:\xampp2\htdocs\newcake3\tests\cases\models\category.test.php Creating file C:\xampp2\htdocs\newcake3\controllers\categories_controller.php You can download SimpleTest from http://simpletest.org Creating file C:\xampp2\htdocs\newcake3\tests\cases\controllers\categories_contr Creating file C:\xampp2\htdocs\newcake3\views\categories\index.ctp Creating file C:\xampp2\htdocs\newcake3\views\categories\view.ctp Creating file C:\xampp2\htdocs\newcake3\views\categories\add.ctp Creating file C:\xampp2\htdocs\newcake3\views\categories\edit.ctp |
Setelah mengenerate table ‘CATEGORIES’, kita akan mengenerate untuk table ‘POSTS’. Tampilan command prompt seperti dibawah ini :
C:\xampp2\htdocs\newcake3>cake bake all
Baking model class for Post… Creating file C:\xampp2\htdocs\newcake3\models\post.php You can download SimpleTest from http://simpletest.org Baking test fixture for Post… Creating file C:\xampp2\htdocs\newcake3\tests\fixtures\post_fixture.php Creating file C:\xampp2\htdocs\newcake3\tests\cases\models\post.test.php Creating file C:\xampp2\htdocs\newcake3\controllers\posts_controller.php You can download SimpleTest from http://simpletest.org Creating file C:\xampp2\htdocs\newcake3\tests\cases\controllers\posts_controller Creating file C:\xampp2\htdocs\newcake3\views\posts\index.ctp Creating file C:\xampp2\htdocs\newcake3\views\posts\view.ctp Creating file C:\xampp2\htdocs\newcake3\views\posts\add.ctp Creating file C:\xampp2\htdocs\newcake3\views\posts\edit.ctp |
Setelah selesai, arahkan url ke http://localhost/newcake3/categories untuk menambahkan data kategori atau arahkan url ke http://localhost/newcake3/posts untuk menambahkan data post lengkap dengan isi category yang terhubung dari data category. Jika kita perhatikan, table dibagian bawah merupakan informasi operasi sql query yang dilakukan oleh CakePHP. Ditampilkan secara otomatis oleh cake karena secara default project berada dalam modus development. Ini berguna untuk melakukan tracing, optimizing, dll, dalam tahap development. Namun jika ingin menghilangkannya sangat mudah ubah saja konfigurasi nya di ...config\core.php
dan ganti nilainya menjadi 0 atau 1 seperti berikut : Configure::write('debug', 1);
Trus bagaimana caranya jika kita mengetikkan url http://localhost/newcake3 akan langsung mengarah ke controller categories atau posts?? Caranya cukup simple, dengan modifikasi file ...config\router.php
seperti berikut :
//Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
Router::connect('/', array('controller' => 'categories', 'action' => 'index'));