Simple CRUD Operation in CakePHP 2.x
This tutorial will explain about CRUD Operation in CakePHP. Here we will perform mysql Insert, Select, Update, Delete operation in cakePHP Framework. As we know CakePHP uses MVC design patterns.
Here we will cover following points:
1. MySQL Database Table Used
2. We are using CakePHP Version 2.x
3. Create/Select/Update/Delete records.
We have assume that you have already created you database table. Here is simple users table structure.
CREATE TABLE `users` (
`id` bigint(20) UNSIGNED NOT NULL primary key AUTO_INCREMENT,
`firstname` varchar(128) NOT NULL,
`lastname` varchar(128) DEFAULT NULL,
`username` varchar(128) DEFAULT NULL,
`password` varchar(128) DEFAULT NULL,
`email` varchar(128) DEFAULT NULL,
`created` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
)
Create action inside Users controller.
Controller: app/Controller/UsersController.php
Create add function inside controller: add() function is used to save data. Here we are using "User" model.
public function add()
{
if ($this->request->is(array('post', 'put'))) {
{
$this->User->create();
if ($this->User->save($this->request->data))
{
$this->Session->setFlash(('Users has been saved successfully'));
return $this->redirect(array('controller' => 'Users', 'action' => 'index'));
} else
{
$this->Session->setFlash(('User could not be saved. Please, try again.'));
}
}
}
Create view file for add action
View: app/View/Users/add.ctp
<h1>Add User</h1>
<?php
echo $this->Form->create('User');
echo $this->Form->input('firstname');
echo $this->Form->input('lastname');
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->input('email');
echo $this->Form->end('Save');
?>
Create edit function: In edit(), here $id parameter to access an existing record.
public function edit($id = null) {
if (!$this->User->exists($id)) {
throw new NotFoundException(_('Invalid user'));
}
if ($this->request->is(array('post', 'put'))) {
$this->User->id = $id;
if ($this->User->save($this->request->data)) {
$this->Session->setFlash(('The user has been saved.'));
return $this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(('The user could not be saved. Please, try again.'));
}
} else {
$this->request->data = $this->User->findById($id);
}
}
View file for edit action
View: app/View/Users/edit.ctp
<h1>Edit User</h1>
<?php
echo $this->Form->create('User');
echo $this->Form->input('firstname');
echo $this->Form->input('lastname');
echo $this->Form->input('username');
echo $this->Form->input('email');
echo $this->Form->input('id', array('type' => 'hidden'));
echo $this->Form->end('Save User');
?>
Create Delete Function: delete() function deletes the data which is ID.
public function delete($id = null) {
$this->User->id = $id;
if (!$this->User->exists()) {
throw new NotFoundException(('Invalid user'));
}
if ($this->User->delete()) {
$this->Session->setFlash(('The user has been deleted.'));
} else {
$this->Session->setFlash(('The user could not be deleted. Please, try again.'));
}
return $this->redirect(array('action' => 'index'));
}
Index Function: index() action is used to fetch data from database users table
public function index()
{
$users = $this->User->find('all');
$this->set('users', $users);
}
View: app/View/Users/index.ctp
<h2>Users</h2>
<!-- link to add new users-->
<div class='pull-right'>
<?php echo $this->Html->link( '+ New User', array( 'action' => 'add' ) ); ?>
</div>
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
<th>Email</th>
<th>Actions</th>
</tr>
<?php
//loop to show all fetched records
foreach( $users as $user ){
echo "<tr>";
echo "<td>{$user['User']['firstname']}</td>";
echo "<td>{$user['User']['lastname']}</td>";
echo "<td>{$user['User']['username']}</td>";
echo "<td>{$user['User']['email']}</td>";
//here are the links to edit and delete actions
echo "<td class='actions'>";
echo $this->Html->link( 'Edit', array('action' => 'edit', $user['User']['id']) );
echo $this->Form->postLink( 'Delete', array(
'action' => 'delete',
$user['User']['id']), array(
'confirm'=>'Are you sure you want to delete that user?' ) );
echo "</td>";
echo "</tr>";
}
?>
</table>
This tutorial will explain about CRUD Operation in CakePHP. Here we will perform mysql Insert, Select, Update, Delete operation in cakePHP Framework. As we know CakePHP uses MVC design patterns.
Here we will cover following points:
1. MySQL Database Table Used
2. We are using CakePHP Version 2.x
3. Create/Select/Update/Delete records.
We have assume that you have already created you database table. Here is simple users table structure.
CREATE TABLE `users` (
`id` bigint(20) UNSIGNED NOT NULL primary key AUTO_INCREMENT,
`firstname` varchar(128) NOT NULL,
`lastname` varchar(128) DEFAULT NULL,
`username` varchar(128) DEFAULT NULL,
`password` varchar(128) DEFAULT NULL,
`email` varchar(128) DEFAULT NULL,
`created` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
)
Create action inside Users controller.
Controller: app/Controller/UsersController.php
Create add function inside controller: add() function is used to save data. Here we are using "User" model.
public function add()
{
if ($this->request->is(array('post', 'put'))) {
{
$this->User->create();
if ($this->User->save($this->request->data))
{
$this->Session->setFlash(('Users has been saved successfully'));
return $this->redirect(array('controller' => 'Users', 'action' => 'index'));
} else
{
$this->Session->setFlash(('User could not be saved. Please, try again.'));
}
}
}
Create view file for add action
View: app/View/Users/add.ctp
<h1>Add User</h1>
<?php
echo $this->Form->create('User');
echo $this->Form->input('firstname');
echo $this->Form->input('lastname');
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->input('email');
echo $this->Form->end('Save');
?>
Create edit function: In edit(), here $id parameter to access an existing record.
public function edit($id = null) {
if (!$this->User->exists($id)) {
throw new NotFoundException(_('Invalid user'));
}
if ($this->request->is(array('post', 'put'))) {
$this->User->id = $id;
if ($this->User->save($this->request->data)) {
$this->Session->setFlash(('The user has been saved.'));
return $this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(('The user could not be saved. Please, try again.'));
}
} else {
$this->request->data = $this->User->findById($id);
}
}
View file for edit action
View: app/View/Users/edit.ctp
<h1>Edit User</h1>
<?php
echo $this->Form->create('User');
echo $this->Form->input('firstname');
echo $this->Form->input('lastname');
echo $this->Form->input('username');
echo $this->Form->input('email');
echo $this->Form->input('id', array('type' => 'hidden'));
echo $this->Form->end('Save User');
?>
Create Delete Function: delete() function deletes the data which is ID.
public function delete($id = null) {
$this->User->id = $id;
if (!$this->User->exists()) {
throw new NotFoundException(('Invalid user'));
}
if ($this->User->delete()) {
$this->Session->setFlash(('The user has been deleted.'));
} else {
$this->Session->setFlash(('The user could not be deleted. Please, try again.'));
}
return $this->redirect(array('action' => 'index'));
}
Index Function: index() action is used to fetch data from database users table
public function index()
{
$users = $this->User->find('all');
$this->set('users', $users);
}
View: app/View/Users/index.ctp
<h2>Users</h2>
<!-- link to add new users-->
<div class='pull-right'>
<?php echo $this->Html->link( '+ New User', array( 'action' => 'add' ) ); ?>
</div>
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
<th>Email</th>
<th>Actions</th>
</tr>
<?php
//loop to show all fetched records
foreach( $users as $user ){
echo "<tr>";
echo "<td>{$user['User']['firstname']}</td>";
echo "<td>{$user['User']['lastname']}</td>";
echo "<td>{$user['User']['username']}</td>";
echo "<td>{$user['User']['email']}</td>";
//here are the links to edit and delete actions
echo "<td class='actions'>";
echo $this->Html->link( 'Edit', array('action' => 'edit', $user['User']['id']) );
echo $this->Form->postLink( 'Delete', array(
'action' => 'delete',
$user['User']['id']), array(
'confirm'=>'Are you sure you want to delete that user?' ) );
echo "</td>";
echo "</tr>";
}
?>
</table>
Good one..
ReplyDeleteThanks Sangi. If you have any query you can put here...
DeleteThis comment has been removed by the author.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteGood one.I appreciate you for sharing this knowledge.Thank you so much for the examples.Its very helpful for me and newbies.I learned much .Have a look on https://yiioverflow.com/
ReplyDeleteGreat Explanation and more useful for anyone.Thanks for sharing...
ReplyDeletePHP Training course in chennai
That's a Great Article and more useful for anyone.Thanks for sharing...
ReplyDeletehttps://www.zuaneducation.com/php-training-courses
SEOEXPERTSEPTEMBER 8, 2019 AT 1:59 AM
ReplyDeleteSuch a very useful article. I have learn some new information.thanks for sharing.
data scientist course in mumbai
Reply godw ork
Ai & Artificial Intelligence Course in Chennai
PHP Training in Chennai
Ethical Hacking Course in Chennai Blue Prism Training in Chennai
UiPath Training in Chennai