{"id":757,"date":"2015-08-26T19:52:40","date_gmt":"2015-08-26T19:52:40","guid":{"rendered":"https:\/\/www.codexworld.com\/?p=757"},"modified":"2015-08-26T20:22:13","modified_gmt":"2015-08-26T20:22:13","slug":"cakephp-tutorial-part-2-add-edit-delete-operations","status":"publish","type":"post","link":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/","title":{"rendered":"CakePHP Tutorial Part 2: Add, Edit and Delete Operations"},"content":{"rendered":"<p>In our previous <a href=\"http:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/\">CakePHP 3.x Tutorial<\/a> we have learned CakePHP framework installation, configuration, database creation, data listing and basic functionalities. Now we&#8217;ll be know about the CakePHP&#8217;s advanced functionality through creating a blog post application as an example. <\/p>\n<p>Basic configuration and blog posts listing already have discussed in our previous tutorial. So before starting the advanced tutorial, you can see the <a href=\"http:\/\/www.codexworld.com\/cakephp-3-x-tutorial-for-beginners\/\">CakePHP 3.x Tutorial for Beginners<\/a>. In this advanced cakephp tutorial we&#8217;ll implement the functionality to add, edit, and delete blog posts.<\/p>\n<div class=\"img_center\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-blog-post-add-edit-delete-operations-by-codexworld.png\" alt=\"cakephp-tutorial-blog-post-add-edit-delete-operations-by-codexworld\" width=\"799\" height=\"436\" class=\"alignnone size-full wp-image-768\" srcset=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-blog-post-add-edit-delete-operations-by-codexworld.png 799w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-blog-post-add-edit-delete-operations-by-codexworld-300x164.png 300w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-blog-post-add-edit-delete-operations-by-codexworld-200x109.png 200w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-blog-post-add-edit-delete-operations-by-codexworld-346x189.png 346w\" sizes=\"auto, (max-width: 799px) 100vw, 799px\" \/><\/div>\n<h2>Adding Posts<\/h2>\n<p><b>Controller:<\/b><br \/>\n<code>index()<\/code> function fetch posts from the database and showing the posts. Now let\u2019s allow for the adding of new posts.<br \/>\nFor showing success and error message you should need to load the FlashComponent in the PostsController. At first create <code>add()<\/code> action in the PostsController. <code>add()<\/code> action render the view of post adding form and try to save the data using the Posts model if the HTTP method of the request was POST. This action also used for show the validation errors or other warnings.<\/p>\n<pre><span style=\"color: #000000\"><span style=\"color: #0000BB\">&lt;?php<br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;src\/Controller\/PostsController.php<br \/><br \/><\/span><span style=\"color: #007700\">namespace&nbsp;<\/span><span style=\"color: #0000BB\">App<\/span><span style=\"color: #007700\">\\<\/span><span style=\"color: #0000BB\">Controller<\/span><span style=\"color: #007700\">;<br \/><br \/>class&nbsp;<\/span><span style=\"color: #0000BB\">PostsController&nbsp;<\/span><span style=\"color: #007700\">extends&nbsp;<\/span><span style=\"color: #0000BB\">AppController<br \/><\/span><span style=\"color: #007700\">{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;<\/span><span style=\"color: #0000BB\">initialize<\/span><span style=\"color: #007700\">()<br \/>&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">parent<\/span><span style=\"color: #007700\">::<\/span><span style=\"color: #0000BB\">initialize<\/span><span style=\"color: #007700\">();<br \/><br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">loadComponent<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'Flash'<\/span><span style=\"color: #007700\">);&nbsp;<\/span><span style=\"color: #FF8000\">\/\/&nbsp;Include&nbsp;the&nbsp;FlashComponent<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #007700\">}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;<\/span><span style=\"color: #0000BB\">index<\/span><span style=\"color: #007700\">()<br \/>&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$posts&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Posts<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">find<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'all'<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">set<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">compact<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'posts'<\/span><span style=\"color: #007700\">));<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;<\/span><span style=\"color: #0000BB\">add<\/span><span style=\"color: #007700\">()<br \/>&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$post&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Posts<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">newEntity<\/span><span style=\"color: #007700\">();<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">request<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">is<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'post'<\/span><span style=\"color: #007700\">))&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$post&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Posts<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">patchEntity<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">request<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">data<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">created&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">date<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">\"Y-m-d&nbsp;H:i:s\"<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">modified&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">date<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">\"Y-m-d&nbsp;H:i:s\"<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Posts<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">save<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">))&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Flash<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">success<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">__<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'Your&nbsp;post&nbsp;has&nbsp;been&nbsp;saved.'<\/span><span style=\"color: #007700\">));<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">redirect<\/span><span style=\"color: #007700\">([<\/span><span style=\"color: #DD0000\">'action'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'index'<\/span><span style=\"color: #007700\">]);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Flash<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">error<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">__<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'Unable&nbsp;to&nbsp;add&nbsp;your&nbsp;post.'<\/span><span style=\"color: #007700\">));<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">set<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'post'<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>}<\/span><\/span><\/pre>\n<p><code>newEntity()<\/code> is creating a new entity and passing it to the <code>save()<\/code> method in the Table class.<br \/>\n<code>patchEntity()<\/code> merge an array of raw data into an existing entity.<\/p>\n<p><b>Model:<\/b><br \/>\nFor data validation you need to create <code>src\/Model\/Table\/PostsTable.php<\/code> model and define the validation rules. <code>validationDefault()<\/code> method tells CakePHP how to validate your data when the save method is called. We have specified here title and description should not be empty.<\/p>\n<pre><span style=\"color: #000000\"><span style=\"color: #0000BB\">&lt;?php<br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;src\/Model\/Table\/PostsTable.php<br \/><br \/><\/span><span style=\"color: #007700\">namespace&nbsp;<\/span><span style=\"color: #0000BB\">App<\/span><span style=\"color: #007700\">\\<\/span><span style=\"color: #0000BB\">Model<\/span><span style=\"color: #007700\">\\<\/span><span style=\"color: #0000BB\">Table<\/span><span style=\"color: #007700\">;<br \/><br \/>use&nbsp;<\/span><span style=\"color: #0000BB\">Cake<\/span><span style=\"color: #007700\">\\<\/span><span style=\"color: #0000BB\">ORM<\/span><span style=\"color: #007700\">\\<\/span><span style=\"color: #0000BB\">Table<\/span><span style=\"color: #007700\">;<br \/>use&nbsp;<\/span><span style=\"color: #0000BB\">Cake<\/span><span style=\"color: #007700\">\\<\/span><span style=\"color: #0000BB\">Validation<\/span><span style=\"color: #007700\">\\<\/span><span style=\"color: #0000BB\">Validator<\/span><span style=\"color: #007700\">;<br \/><br \/>class&nbsp;<\/span><span style=\"color: #0000BB\">PostsTable&nbsp;<\/span><span style=\"color: #007700\">extends&nbsp;<\/span><span style=\"color: #0000BB\">Table<br \/><\/span><span style=\"color: #007700\">{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;<\/span><span style=\"color: #0000BB\">initialize<\/span><span style=\"color: #007700\">(array&nbsp;<\/span><span style=\"color: #0000BB\">$config<\/span><span style=\"color: #007700\">)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">addBehavior<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'Timestamp'<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<br \/><br \/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;<\/span><span style=\"color: #0000BB\">validationDefault<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">Validator&nbsp;$validator<\/span><span style=\"color: #007700\">)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$validator<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">notEmpty<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'title'<\/span><span style=\"color: #007700\">)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;<\/span><span style=\"color: #0000BB\">notEmpty<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'description'<\/span><span style=\"color: #007700\">);<br \/><br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;<\/span><span style=\"color: #0000BB\">$validator<\/span><span style=\"color: #007700\">;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>}<\/span><\/span><\/pre>\n<p><b>View:<\/b><br \/>\nOur <code>src\/Template\/Posts\/add.ctp<\/code> view would be look like below. You&#8217;ll need to use CakePHP&#8217;s FormHelper to take advantage of the validation features.<\/p>\n<pre><span style=\"color:#5a525f;font-style:italic\">&lt;!-- File: src\/Template\/Posts\/add.ctp --><\/span>\r\n\r\n&lt;<span style=\"color:#bf4f24\">h1<\/span>>Add Blog Post&lt;\/<span style=\"color:#bf4f24\">h1<\/span>>\r\n<span style=\"color: #000000\"><span style=\"color: #0000BB\">&lt;?php<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #007700\">echo&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Form<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">create<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Form<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">input<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'title'<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Form<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">input<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'description'<\/span><span style=\"color: #007700\">,&nbsp;[<\/span><span style=\"color: #DD0000\">'rows'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'3'<\/span><span style=\"color: #007700\">]);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Form<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">button<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">__<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'Save&nbsp;Post'<\/span><span style=\"color: #007700\">));<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Form<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">end<\/span><span style=\"color: #007700\">();<br \/><\/span><span style=\"color: #0000BB\">?&gt;<\/span><\/span><\/pre>\n<div class=\"img_center\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-add-blog-post-by-codexworld.png\" alt=\"cakephp-tutorial-add-blog-post-by-codexworld\" width=\"335\" height=\"343\" class=\"alignnone size-full wp-image-760\" srcset=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-add-blog-post-by-codexworld.png 335w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-add-blog-post-by-codexworld-293x300.png 293w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-add-blog-post-by-codexworld-200x205.png 200w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-add-blog-post-by-codexworld-225x230.png 225w\" sizes=\"auto, (max-width: 335px) 100vw, 335px\" \/><\/div>\n<p>Now update the <code>src\/Template\/Posts\/index.ctp<\/code> view with &#8220;Add New Post&#8221; link.<\/p>\n<pre><span style=\"color: #000000\"><span style=\"color: #0000BB\">&lt;?=&nbsp;$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Html<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">link<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'Add&nbsp;New&nbsp;Post'<\/span><span style=\"color: #007700\">,&nbsp;[<\/span><span style=\"color: #DD0000\">'action'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'add'<\/span><span style=\"color: #007700\">])&nbsp;<\/span><span style=\"color: #0000BB\">?&gt;<\/span><\/span><\/pre>\n<h2>Editing Posts<\/h2>\n<p><b>Controller:<\/b><br \/>\n<code>edit()<\/code> action first ensures that the user has passed an <code>$id<\/code> parameter to access an existing record. If they haven&#8217;t passed or the post does not exists, throw a NotFoundException.<\/p>\n<pre><span style=\"color: #000000\"><span style=\"color: #007700\">public&nbsp;function&nbsp;<\/span><span style=\"color: #0000BB\">edit<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$id&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">null<\/span><span style=\"color: #007700\">)<br \/>{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$post&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Posts<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">get<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$id<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">request<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">is<\/span><span style=\"color: #007700\">([<\/span><span style=\"color: #DD0000\">'post'<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #DD0000\">'put'<\/span><span style=\"color: #007700\">]))&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$post&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Posts<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">patchEntity<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">request<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">data<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">modified&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">date<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">\"Y-m-d&nbsp;H:i:s\"<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Posts<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">save<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">))&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Flash<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">success<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">__<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'Your&nbsp;post&nbsp;has&nbsp;been&nbsp;updated.'<\/span><span style=\"color: #007700\">));<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">redirect<\/span><span style=\"color: #007700\">([<\/span><span style=\"color: #DD0000\">'action'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'index'<\/span><span style=\"color: #007700\">]);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Flash<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">error<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">__<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'Unable&nbsp;to&nbsp;update&nbsp;your&nbsp;post.'<\/span><span style=\"color: #007700\">));<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">set<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'post'<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">);<br \/>}<\/span><\/span><\/pre>\n<p><b>View:<\/b><br \/>\n<code>src\/Template\/Posts\/edit.ctp<\/code> view might be look like this.<\/p>\n<pre><span style=\"color:#5a525f;font-style:italic\">&lt;!-- File: src\/Template\/Posts\/edit.ctp --><\/span>\r\n\r\n&lt;<span style=\"color:#bf4f24\">h1<\/span>>Edit Post&lt;\/<span style=\"color:#bf4f24\">h1<\/span>>\r\n<span style=\"color: #000000\"><span style=\"color: #0000BB\">&lt;?php<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #007700\">echo&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Form<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">create<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Form<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">input<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'title'<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Form<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">input<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'description'<\/span><span style=\"color: #007700\">,&nbsp;[<\/span><span style=\"color: #DD0000\">'rows'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'3'<\/span><span style=\"color: #007700\">]);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Form<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">button<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">__<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'Save&nbsp;Post'<\/span><span style=\"color: #007700\">));<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Form<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">end<\/span><span style=\"color: #007700\">();<br \/><\/span><span style=\"color: #0000BB\">?&gt;<\/span><\/span><\/pre>\n<div class=\"img_center\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-edit-blog-post-by-codexworld.png\" alt=\"cakephp-tutorial-edit-blog-post-by-codexworld\" width=\"337\" height=\"344\" class=\"alignnone size-full wp-image-759\" srcset=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-edit-blog-post-by-codexworld.png 337w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-edit-blog-post-by-codexworld-294x300.png 294w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-edit-blog-post-by-codexworld-200x204.png 200w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-edit-blog-post-by-codexworld-225x230.png 225w\" sizes=\"auto, (max-width: 337px) 100vw, 337px\" \/><\/div>\n<p>Now update the <code>src\/Template\/Posts\/index.ctp<\/code> view with &#8220;Edit Post&#8221; link.<\/p>\n<pre><span style=\"color: #000000\"><span style=\"color: #0000BB\">&lt;?=&nbsp;$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Html<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">link<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'Edit'<\/span><span style=\"color: #007700\">,&nbsp;[<\/span><span style=\"color: #DD0000\">'action'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'edit'<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">id<\/span><span style=\"color: #007700\">])&nbsp;<\/span><span style=\"color: #0000BB\">?&gt;<\/span><\/span><\/pre>\n<h2>Deleting Posts<\/h2>\n<p><b>Controller:<\/b><br \/>\nLet&#8217;s allow user to delete posts by creating a <code>delete()<\/code> action in PostsController. <code>delete()<\/code> action deletes post specified by <code>$id<\/code>. After deleting the post user would be redirected to the index page.<\/p>\n<pre><span style=\"color: #000000\"><span style=\"color: #007700\">public&nbsp;function&nbsp;<\/span><span style=\"color: #0000BB\">delete<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$id<\/span><span style=\"color: #007700\">)<br \/>{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">request<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">allowMethod<\/span><span style=\"color: #007700\">([<\/span><span style=\"color: #DD0000\">'post'<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #DD0000\">'delete'<\/span><span style=\"color: #007700\">]);<br \/><br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$post&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Posts<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">get<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$id<\/span><span style=\"color: #007700\">);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Posts<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">delete<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">))&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Flash<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">success<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">__<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'The&nbsp;post&nbsp;with&nbsp;id:&nbsp;{0}&nbsp;has&nbsp;been&nbsp;deleted.'<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #0000BB\">h<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$id<\/span><span style=\"color: #007700\">)));<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;<\/span><span style=\"color: #0000BB\">$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">redirect<\/span><span style=\"color: #007700\">([<\/span><span style=\"color: #DD0000\">'action'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'index'<\/span><span style=\"color: #007700\">]);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>}<\/span><\/span><\/pre>\n<p>Now update the <code>src\/Template\/Posts\/index.ctp<\/code> view with Delte Post link. Also it will better if you show the confirmation message once the Delete link is clicked.  <code>$this->Form->postLink()<\/code> creates a link with JavaScript confirm alert for preventing the accidental click.<\/p>\n<pre><span style=\"color: #000000\"><span style=\"color: #0000BB\">&lt;?=&nbsp;$this<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Form<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">postLink<\/span><span style=\"color: #007700\">(<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'Delete'<\/span><span style=\"color: #007700\">,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;[<\/span><span style=\"color: #DD0000\">'action'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'delete'<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #0000BB\">$post<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">id<\/span><span style=\"color: #007700\">],<br \/>&nbsp;&nbsp;&nbsp;&nbsp;[<\/span><span style=\"color: #DD0000\">'confirm'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #DD0000\">'Are&nbsp;you&nbsp;sure?'<\/span><span style=\"color: #007700\">])<br \/><\/span><span style=\"color: #0000BB\">?&gt;<\/span><\/span><\/pre>\n<h2>Testing<\/h2>\n<p>Go to the homepage page (<code>http:\/\/localhost\/cakephp\/<\/code>) => you can see posts list with working add, edit and delete links.<\/p>\n<div class=\"img_center\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-blog-post-listing-by-codexworld.png\" alt=\"cakephp-tutorial-blog-post-listing-by-codexworld\" width=\"829\" height=\"540\" class=\"alignnone size-full wp-image-758\" srcset=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-blog-post-listing-by-codexworld.png 829w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-blog-post-listing-by-codexworld-300x195.png 300w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-blog-post-listing-by-codexworld-200x130.png 200w, https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-blog-post-listing-by-codexworld-346x225.png 346w\" sizes=\"auto, (max-width: 829px) 100vw, 829px\" \/><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In our previous CakePHP 3.x Tutorial we have learned CakePHP framework installation, configuration, database creation, data listing and basic functionalities. Now we&#8217;ll be know about the CakePHP&#8217;s advanced functionality through creating a blog post application <\/p>\n","protected":false},"author":1,"featured_media":771,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[12],"tags":[32,34,33],"class_list":["post-757","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cakephp","tag-cakephp","tag-cakephp-3","tag-cakephp-3-x","cat-12-id","has_thumb"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>CakePHP Tutorial Part 2: Add, Edit and Delete Operations - CodexWorld<\/title>\n<meta name=\"description\" content=\"CakePHP Advanced Tutorial on add, edit and delete operations. Insert, update and delete blog posts in CakePHP framework with our CakePHP 3.x advanced tutorial.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CakePHP Tutorial Part 2: Add, Edit and Delete Operations - CodexWorld\" \/>\n<meta property=\"og:description\" content=\"CakePHP Advanced Tutorial on add, edit and delete operations. Insert, update and delete blog posts in CakePHP framework with our CakePHP 3.x advanced tutorial.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/\" \/>\n<meta property=\"og:site_name\" content=\"CodexWorld\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/codexworld\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/codexworld\" \/>\n<meta property=\"article:published_time\" content=\"2015-08-26T19:52:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-08-26T20:22:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-add-edit-delete-operations-by-codexworld.png\" \/>\n\t<meta property=\"og:image:width\" content=\"799\" \/>\n\t<meta property=\"og:image:height\" content=\"513\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"CodexWorld\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@codexworldblog\" \/>\n<meta name=\"twitter:site\" content=\"@codexworldweb\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"CodexWorld\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-tutorial-part-2-add-edit-delete-operations\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-tutorial-part-2-add-edit-delete-operations\\\/\"},\"author\":{\"name\":\"CodexWorld\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#\\\/schema\\\/person\\\/9da51d8fa3cdefeb5ec9c69136d4baf0\"},\"headline\":\"CakePHP Tutorial Part 2: Add, Edit and Delete Operations\",\"datePublished\":\"2015-08-26T19:52:40+00:00\",\"dateModified\":\"2015-08-26T20:22:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-tutorial-part-2-add-edit-delete-operations\\\/\"},\"wordCount\":408,\"commentCount\":19,\"publisher\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-tutorial-part-2-add-edit-delete-operations\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2015\\\/08\\\/cakephp-tutorial-add-edit-delete-operations-by-codexworld.png\",\"keywords\":[\"CakePHP\",\"CakePHP 3\",\"CakePHP 3.x\"],\"articleSection\":[\"CakePHP\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.codexworld.com\\\/cakephp-tutorial-part-2-add-edit-delete-operations\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-tutorial-part-2-add-edit-delete-operations\\\/\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-tutorial-part-2-add-edit-delete-operations\\\/\",\"name\":\"CakePHP Tutorial Part 2: Add, Edit and Delete Operations - CodexWorld\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-tutorial-part-2-add-edit-delete-operations\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-tutorial-part-2-add-edit-delete-operations\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2015\\\/08\\\/cakephp-tutorial-add-edit-delete-operations-by-codexworld.png\",\"datePublished\":\"2015-08-26T19:52:40+00:00\",\"dateModified\":\"2015-08-26T20:22:13+00:00\",\"description\":\"CakePHP Advanced Tutorial on add, edit and delete operations. Insert, update and delete blog posts in CakePHP framework with our CakePHP 3.x advanced tutorial.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-tutorial-part-2-add-edit-delete-operations\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.codexworld.com\\\/cakephp-tutorial-part-2-add-edit-delete-operations\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-tutorial-part-2-add-edit-delete-operations\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2015\\\/08\\\/cakephp-tutorial-add-edit-delete-operations-by-codexworld.png\",\"contentUrl\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2015\\\/08\\\/cakephp-tutorial-add-edit-delete-operations-by-codexworld.png\",\"width\":799,\"height\":513,\"caption\":\"cakephp-tutorial-add-edit-delete-operations-by-codexworld\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/cakephp-tutorial-part-2-add-edit-delete-operations\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.codexworld.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CakePHP Tutorial Part 2: Add, Edit and Delete Operations\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#website\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/\",\"name\":\"CodexWorld\",\"description\":\"Web &amp; Mobile App Development Company\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.codexworld.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#organization\",\"name\":\"CodexWorld\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2014\\\/09\\\/codexworld-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2014\\\/09\\\/codexworld-logo.png\",\"width\":200,\"height\":19,\"caption\":\"CodexWorld\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/codexworld\",\"https:\\\/\\\/x.com\\\/codexworldweb\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/codexworld\",\"https:\\\/\\\/www.youtube.com\\\/codexworld\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#\\\/schema\\\/person\\\/9da51d8fa3cdefeb5ec9c69136d4baf0\",\"name\":\"CodexWorld\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g\",\"caption\":\"CodexWorld\"},\"description\":\"CodexWorld is a programming blog, one-stop destination for web professionals \u2014 developers, programmers, freelancers, and site owners.\",\"sameAs\":[\"http:\\\/\\\/www.codexworld.com\",\"https:\\\/\\\/www.facebook.com\\\/codexworld\",\"https:\\\/\\\/x.com\\\/codexworldblog\"],\"url\":\"https:\\\/\\\/www.codexworld.com\\\/author\\\/nitya192265\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CakePHP Tutorial Part 2: Add, Edit and Delete Operations - CodexWorld","description":"CakePHP Advanced Tutorial on add, edit and delete operations. Insert, update and delete blog posts in CakePHP framework with our CakePHP 3.x advanced tutorial.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/","og_locale":"en_US","og_type":"article","og_title":"CakePHP Tutorial Part 2: Add, Edit and Delete Operations - CodexWorld","og_description":"CakePHP Advanced Tutorial on add, edit and delete operations. Insert, update and delete blog posts in CakePHP framework with our CakePHP 3.x advanced tutorial.","og_url":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/","og_site_name":"CodexWorld","article_publisher":"https:\/\/www.facebook.com\/codexworld","article_author":"https:\/\/www.facebook.com\/codexworld","article_published_time":"2015-08-26T19:52:40+00:00","article_modified_time":"2015-08-26T20:22:13+00:00","og_image":[{"width":799,"height":513,"url":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-add-edit-delete-operations-by-codexworld.png","type":"image\/png"}],"author":"CodexWorld","twitter_card":"summary_large_image","twitter_creator":"@codexworldblog","twitter_site":"@codexworldweb","twitter_misc":{"Written by":"CodexWorld","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/#article","isPartOf":{"@id":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/"},"author":{"name":"CodexWorld","@id":"https:\/\/www.codexworld.com\/#\/schema\/person\/9da51d8fa3cdefeb5ec9c69136d4baf0"},"headline":"CakePHP Tutorial Part 2: Add, Edit and Delete Operations","datePublished":"2015-08-26T19:52:40+00:00","dateModified":"2015-08-26T20:22:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/"},"wordCount":408,"commentCount":19,"publisher":{"@id":"https:\/\/www.codexworld.com\/#organization"},"image":{"@id":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-add-edit-delete-operations-by-codexworld.png","keywords":["CakePHP","CakePHP 3","CakePHP 3.x"],"articleSection":["CakePHP"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/","url":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/","name":"CakePHP Tutorial Part 2: Add, Edit and Delete Operations - CodexWorld","isPartOf":{"@id":"https:\/\/www.codexworld.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/#primaryimage"},"image":{"@id":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-add-edit-delete-operations-by-codexworld.png","datePublished":"2015-08-26T19:52:40+00:00","dateModified":"2015-08-26T20:22:13+00:00","description":"CakePHP Advanced Tutorial on add, edit and delete operations. Insert, update and delete blog posts in CakePHP framework with our CakePHP 3.x advanced tutorial.","breadcrumb":{"@id":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/#primaryimage","url":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-add-edit-delete-operations-by-codexworld.png","contentUrl":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-add-edit-delete-operations-by-codexworld.png","width":799,"height":513,"caption":"cakephp-tutorial-add-edit-delete-operations-by-codexworld"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codexworld.com\/cakephp-tutorial-part-2-add-edit-delete-operations\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codexworld.com\/"},{"@type":"ListItem","position":2,"name":"CakePHP Tutorial Part 2: Add, Edit and Delete Operations"}]},{"@type":"WebSite","@id":"https:\/\/www.codexworld.com\/#website","url":"https:\/\/www.codexworld.com\/","name":"CodexWorld","description":"Web &amp; Mobile App Development Company","publisher":{"@id":"https:\/\/www.codexworld.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codexworld.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codexworld.com\/#organization","name":"CodexWorld","url":"https:\/\/www.codexworld.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codexworld.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2014\/09\/codexworld-logo.png","contentUrl":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2014\/09\/codexworld-logo.png","width":200,"height":19,"caption":"CodexWorld"},"image":{"@id":"https:\/\/www.codexworld.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/codexworld","https:\/\/x.com\/codexworldweb","https:\/\/www.linkedin.com\/company\/codexworld","https:\/\/www.youtube.com\/codexworld"]},{"@type":"Person","@id":"https:\/\/www.codexworld.com\/#\/schema\/person\/9da51d8fa3cdefeb5ec9c69136d4baf0","name":"CodexWorld","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g","caption":"CodexWorld"},"description":"CodexWorld is a programming blog, one-stop destination for web professionals \u2014 developers, programmers, freelancers, and site owners.","sameAs":["http:\/\/www.codexworld.com","https:\/\/www.facebook.com\/codexworld","https:\/\/x.com\/codexworldblog"],"url":"https:\/\/www.codexworld.com\/author\/nitya192265\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/08\/cakephp-tutorial-add-edit-delete-operations-by-codexworld.png","jetpack_shortlink":"https:\/\/wp.me\/p6bxIh-cd","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/posts\/757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/comments?post=757"}],"version-history":[{"count":6,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/posts\/757\/revisions"}],"predecessor-version":[{"id":769,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/posts\/757\/revisions\/769"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/media\/771"}],"wp:attachment":[{"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/media?parent=757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/categories?post=757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/tags?post=757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}