Skip to main content

Simple CRUD Example in Cakephp

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>

Comments

  1. Replies
    1. Thanks Sangi. If you have any query you can put here...

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Good 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/

    ReplyDelete
  5. Great Explanation and more useful for anyone.Thanks for sharing...
    PHP Training course in chennai

    ReplyDelete
  6. That's a Great Article and more useful for anyone.Thanks for sharing...
    https://www.zuaneducation.com/php-training-courses

    ReplyDelete
  7. SEOEXPERTSEPTEMBER 8, 2019 AT 1:59 AM
    Such 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

    ReplyDelete

Post a Comment

Popular posts from this blog

A Guide to UTF-8 for PHP and MySQL

Data Encoding: A Guide to UTF-8 for PHP and MySQL As a MySQL or PHP developer, once you step beyond the comfortable confines of English-only character sets, you quickly find yourself entangled in the wonderfully wacky world of UTF-8. On a previous job, we began running into data encoding issues when displaying bios of artists from all over the world. It soon became apparent that there were problems with the stored data, as sometimes the data was correctly encoded and sometimes it was not. This led programmers to implement a hodge-podge of patches, sometimes with JavaScript, sometimes with HTML charset meta tags, sometimes with PHP, and soon. Soon, we ended up with a list of 600,000 artist bios with double- or triple encoded information, with data being stored in different ways depending on who programmed the feature or implemented the patch. A classical technical rat’s nest.Indeed, navigating through UTF-8 related data encoding issues can be a frustrating and hair-pul...

How To Create Shortcodes In WordPress

We can create own shortcode by using its predified hooks add_shortcode( 'hello-world', 'techsudhir_hello_world_shortcode' ); 1. Write the Shortcode Function Write a function with a unique name, which will execute the code you’d like the shortcode to trigger: function techsudhir_hello_world_shortcode() {    return 'Hello world!'; } Example: [hello-world] If we were to use this function normally, it would return Hello world! as a string 2. Shortcode function with parameters function techsudhir_hello_world_shortcode( $atts ) {    $a = shortcode_atts( array(       'name' => 'world'    ), $atts );    return 'Hello ' . $a['name'] . !'; } Example: [hello-world name="Sudhir"] You can also call shortcode function in PHP using do_shortcode function Example: do_shortcode('[hello-world]');

Integrating Kafka with Node.js

Integrating Kafka with Node.js Apache Kafka is a popular open-source distributed event streaming platform that uses publish & subscribe mechanism to stream the records(data). Kafka Terminologies Distributed system: Distributed system is a computing environment where various software components located on different machines (over multiple locations). All components coordinate together to get stuff done as one unit.   Kafka Broker: Brokers are cluster of multiple servers. Message of each topic are split among the various brokers. Brokers handle all requests from clients to write and read events. A Kafka cluster is simply a collection of one or more Kafka brokers. Topics: A topic is a stream of "related" messages. Its unique throughout application. Kafka producers write messages to topics. Producer: Producer publishes data on the topics. A producer sends a message to a broker and the broker receives and stores messages. Consumers: Consumers read data from topics. A consu...