Table of Contents
Blog Tutorial - Adding a layer
Create a Post Model
Create a Posts Controller
Creating Post Views
Blog posts
Adding Posts
Home Backend Development PHP Tutorial CakePHP 官方博客示范教程

CakePHP 官方博客示范教程

Jun 13, 2016 am 11:03 AM
gt lt post the this

CakePHP 官方博客示例教程

初识CakePHP,感觉不错;

按照官方的博客示例教程练习了一下,有点自信继续学下去了。下面是示例:

地址:http://book.cakephp.org/2.0/en/tutorials-and-examples/blog/part-two.html

?

?

Blog Tutorial - Adding a layer

Create a Post Model

The Model class is the bread and butter of CakePHP applications. By creating a CakePHP model that will interact with our database, we’ll have the foundation in place needed to do our view, add, edit, and delete operations later.

CakePHP’s model class files go in?/app/Model, and the file we’ll be creating will be saved to?/app/Model/Post.php. The completed file should look like this:

<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">class</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #c44f24;" class="nc">Post</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">extends</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #c44f24;" class="nx">AppModel</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">{</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">}</span></span>
Copy after login

Naming convention is very important in CakePHP. By naming our model Post, CakePHP can automatically infer that this model will be used in the PostsController, and will be tied to a database table called?posts.

Note

CakePHP will dynamically create a model object for you if it cannot find a corresponding file in /app/Model. This also means that if you accidentally name your file wrong (i.e. post.php or posts.php), CakePHP will not recognize any of your settings and will use the defaults instead.

For more on models, such as table prefixes, callbacks, and validation, check out the?Models?chapter of the Manual.

Create a Posts Controller

Next, we’ll create a controller for our posts. The controller is where all the business logic for post interaction will happen. In a nutshell, it’s the place where you play with the models and get post-related work done. We’ll place this new controller in a file called?PostsController.php?inside the?/app/Controller?directory. Here’s what the basic controller should look like:

<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">class</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #c44f24;" class="nc">PostsController</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">extends</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #c44f24;" class="nx">AppController</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">{</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">public</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$helpers</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">=</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Html'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">,</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Form'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">);</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">}</span></span>
Copy after login

Now, lets add an action to our controller. Actions often represent a single function or interface in an application. For example, when users request www.example.com/posts/index (which is also the same as www.example.com/posts/), they might expect to see a listing of posts. The code for that action would look something like this:

<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">class</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #c44f24;" class="nc">PostsController</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">extends</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #c44f24;" class="nx">AppController</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">{</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">public</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$helpers</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">=</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Html'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">,</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Form'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">);</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">public</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">function</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #bf4f24;" class="nf">index</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">()</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">{</span>        <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">set</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'posts'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">,</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">Post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">find</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'all'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">));</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">}</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">}</span></span>
Copy after login

Let me explain the action a bit. By defining function?index()?in our PostsController, users can now access the logic there by requesting www.example.com/posts/index. Similarly, if we were to define a function called?foobar(), users would be able to access that at www.example.com/posts/foobar.

Warning

You may be tempted to name your controllers and actions a certain way to obtain a certain URL. Resist that temptation. Follow CakePHP conventions (plural controller names, etc.) and create readable, understandable action names. You can map URLs to your code using “routes” covered later on.

The single instruction in the action uses?set()?to pass data from the controller to the view (which we’ll create next). The line sets the view variable called ‘posts’ equal to the return value of the?find('all')?method of the Post model. Our Post model is automatically available at?$this->Post?because we’ve followed Cake’s naming conventions.

To learn more about Cake’s controllers, check out the?Controllers?chapter.

Creating Post Views

Now that we have our data flowing to our model, and our application logic and flow defined by our controller, let’s create a view for the index action we created above.

Cake views are just presentation-flavored fragments that fit inside an application’s layout. For most applications they’re HTML mixed with PHP, but they may end up as XML, CSV, or even binary data.

Layouts are presentation code that is wrapped around a view, and can be defined and switched between, but for now, let’s just use the default.

Remember in the last section how we assigned the ‘posts’ variable to the view using the?set()?method? That would hand down data to the view that would look something like this:

<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">// print_r($posts) output:</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">Array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">    [0] => Array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">        (</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">            [Post] => Array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                (</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [id] => 1</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [title] => The title</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [body] => This is the post body.</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [created] => 2008-02-13 18:34:55</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [modified] =></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                )</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">        )</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">    [1] => Array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">        (</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">            [Post] => Array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                (</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [id] => 2</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [title] => A title once again</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [body] => And the post body follows.</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [created] => 2008-02-13 18:34:56</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [modified] =></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                )</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">        )</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">    [2] => Array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">        (</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">            [Post] => Array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                (</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [id] => 3</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [title] => Title strikes back</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [body] => This is really exciting! Not.</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [created] => 2008-02-13 18:34:57</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                    [modified] =></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">                )</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">        )</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">)</span>
Copy after login

Cake’s view files are stored in?/app/View?inside a folder named after the controller they correspond to (we’ll have to create a folder named ‘Posts’ in this case). To format this post data in a nice table, our view code might look something like this:

<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x"><!-- File: /app/View/Posts/index.ctp --></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x"><h1 id="Blog-posts">Blog posts</h1></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x"><table>
<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">    <tr>
<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">        </span><th>Id</th>
<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">        </span><th>Title</th>
<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">        </span><th>Created</th>
<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">    </span>
</tr></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">    <!-- Here is where we loop through our $posts array, printing out post info --></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">    </span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">foreach</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$posts</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">as</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">)</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">:</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp">?></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">    <tr>
<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">        </span><td><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">echo</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">[</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Post'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">][</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'id'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">];</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp">?></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x"></span></span></td>
<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">        </span><td>
<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">            </span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">echo</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">Html</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">link</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">[</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Post'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">][</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'title'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">],</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'controller'</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">=></span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'posts'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">,</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'action'</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">=></span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'view'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">,</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">[</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Post'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">][</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'id'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">]));</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp">?></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">        </span></span>
</td>
<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">        </span><td><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">echo</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">[</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Post'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">][</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'created'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">];</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp">?></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x"></span></span></td>
<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">    </span>
</tr></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">    </span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">endforeach</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">;</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp">?></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x">    </span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #007020;" class="nb">unset</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">);</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp">?></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x"></span></span></span></span>
</table></span>
Copy after login

Hopefully this should look somewhat simple.

You might have noticed the use of an object called?$this->Html. This is an instance of the CakePHP?HtmlHelperclass. CakePHP comes with a set of view helpers that make things like linking, form output, JavaScript and Ajax a snap. You can learn more about how to use them in?Helpers, but what’s important to note here is that the?link()method will generate an HTML link with the given title (the first parameter) and URL (the second parameter).

When specifying URLs in Cake, it is recommended that you use the array format. This is explained in more detail in the section on Routes. Using the array format for URLs allows you to take advantage of CakePHP’s reverse routing capabilities. You can also specify URLs relative to the base of the application in the form of /controller/action/param1/param2.

At this point, you should be able to point your browser to?http://www.example.com/posts/index. You should see your view, correctly formatted with the title and table listing of the posts.

If you happened to have clicked on one of the links we created in this view (that link a post’s title to a URL /posts/view/some_id), you were probably informed by CakePHP that the action hasn’t yet been defined. If you were not so informed, either something has gone wrong, or you actually did define it already, in which case you are very sneaky. Otherwise, we’ll create it in the PostsController now:

<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">class</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #c44f24;" class="nc">PostsController</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">extends</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #c44f24;" class="nx">AppController</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">{</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">public</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$helpers</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">=</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Html'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">,</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Form'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">);</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">public</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">function</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #bf4f24;" class="nf">index</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">()</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">{</span>         <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">set</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'posts'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">,</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">Post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">find</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'all'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">));</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">}</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">public</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">function</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #bf4f24;" class="nf">view</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$id</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">=</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">null</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">)</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">{</span>        <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">Post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">id</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">=</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$id</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">;</span>        <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">set</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'post'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">,</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">Post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">read</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">());</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">}</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">}</span></span>
Copy after login

The?set()?call should look familiar. Notice we’re using?read()?rather than?find('all')?because we only really want a single post’s information.

Notice that our view action takes a parameter: the ID of the post we’d like to see. This parameter is handed to the action through the requested URL. If a user requests /posts/view/3, then the value ‘3’ is passed as?$id.

Now let’s create the view for our new ‘view’ action and place it in?/app/View/Posts/view.ctp:

<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x"><!-- File: /app/View/Posts/view.ctp --></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x"><h1></h1></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">echo</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #c44f24;" class="nx">h</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">[</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Post'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">][</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'title'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">]);</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp">?></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x"></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x"><p><small>Created: </small></p></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">echo</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">[</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Post'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">][</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'created'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">];</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp">?></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x"></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x"><p></p></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">echo</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #c44f24;" class="nx">h</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">[</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Post'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">][</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'body'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">]);</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp">?></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="x"></span></span></span></span>
Copy after login

Verify that this is working by trying the links at?/posts/index?or manually requesting a post by accessing/posts/view/1.

Adding Posts

Reading from the database and showing us the posts is a great start, but let’s allow for the adding of new posts.

First, start by creating an?add()?action in the PostsController:

<span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #666666;" class="cp"><?php </span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">class</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #c44f24;" class="nc">PostsController</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">extends</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #c44f24;" class="nx">AppController</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">{</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">public</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$helpers</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">=</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Html'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">,</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Form'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">,</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Session'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">);</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">public</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$components</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">=</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Session'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">);</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">public</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">function</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #bf4f24;" class="nf">index</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">()</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">{</span>        <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">set</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'posts'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">,</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">Post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">find</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'all'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">));</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">}</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">public</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">function</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #bf4f24;" class="nf">view</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$id</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">)</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">{</span>        <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">Post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">id</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">=</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$id</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">;</span>        <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">set</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'post'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">,</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">Post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">read</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">());</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">}</span>    <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">public</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">function</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #bf4f24;" class="nf">add</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">()</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">{</span>        <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">if</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">request</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">is</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'post'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">))</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">{</span>            <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">Post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">create</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">();</span>            <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">if</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">Post</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">save</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">request</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">data</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">))</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">{</span>                <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">Session</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">setFlash</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'Your post has been saved.'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">);</span>                <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #234aa0;" class="nv">$this</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">-></span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #080808;" class="na">redirect</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #a71d5d; font-style: italic;" class="k">array</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">(</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'action'</span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #794938;" class="o">=></span> <span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: #0b6125;" class="s1">'index'</span><span style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;" class="p">));</span>   </span>
Copy after login
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What are the differences between Huawei GT3 Pro and GT4? What are the differences between Huawei GT3 Pro and GT4? Dec 29, 2023 pm 02:27 PM

Many users will choose the Huawei brand when choosing smart watches. Among them, Huawei GT3pro and GT4 are very popular choices. Many users are curious about the difference between Huawei GT3pro and GT4. Let’s introduce the two to you. . What are the differences between Huawei GT3pro and GT4? 1. Appearance GT4: 46mm and 41mm, the material is glass mirror + stainless steel body + high-resolution fiber back shell. GT3pro: 46.6mm and 42.9mm, the material is sapphire glass + titanium body/ceramic body + ceramic back shell 2. Healthy GT4: Using the latest Huawei Truseen5.5+ algorithm, the results will be more accurate. GT3pro: Added ECG electrocardiogram and blood vessel and safety

Fix: Snipping tool not working in Windows 11 Fix: Snipping tool not working in Windows 11 Aug 24, 2023 am 09:48 AM

Why Snipping Tool Not Working on Windows 11 Understanding the root cause of the problem can help find the right solution. Here are the top reasons why the Snipping Tool might not be working properly: Focus Assistant is On: This prevents the Snipping Tool from opening. Corrupted application: If the snipping tool crashes on launch, it might be corrupted. Outdated graphics drivers: Incompatible drivers may interfere with the snipping tool. Interference from other applications: Other running applications may conflict with the Snipping Tool. Certificate has expired: An error during the upgrade process may cause this issu simple solution. These are suitable for most users and do not require any special technical knowledge. 1. Update Windows and Microsoft Store apps

After 2 months, the humanoid robot Walker S can fold clothes After 2 months, the humanoid robot Walker S can fold clothes Apr 03, 2024 am 08:01 AM

Editor of Machine Power Report: Wu Xin The domestic version of the humanoid robot + large model team completed the operation task of complex flexible materials such as folding clothes for the first time. With the unveiling of Figure01, which integrates OpenAI's multi-modal large model, the related progress of domestic peers has been attracting attention. Just yesterday, UBTECH, China's "number one humanoid robot stock", released the first demo of the humanoid robot WalkerS that is deeply integrated with Baidu Wenxin's large model, showing some interesting new features. Now, WalkerS, blessed by Baidu Wenxin’s large model capabilities, looks like this. Like Figure01, WalkerS does not move around, but stands behind a desk to complete a series of tasks. It can follow human commands and fold clothes

A brief analysis of the POST method in PHP with parameters to jump to the page A brief analysis of the POST method in PHP with parameters to jump to the page Mar 23, 2023 am 09:15 AM

For PHP developers, using POST to jump to pages with parameters is a basic skill. POST is a method of sending data in HTTP. It can submit data to the server through HTTP requests. The jump page processes and jumps the page on the server side. In actual development, we often need to use POST with parameters to jump to pages to achieve certain functional purposes.

How to determine whether a post has been submitted in PHP How to determine whether a post has been submitted in PHP Mar 21, 2023 pm 07:12 PM

PHP is a widely used server-side scripting language that can be used to create interactive and dynamic web applications. When developing PHP applications, we usually need to submit user input data to the server for processing through forms. However, sometimes we need to determine whether form data has been submitted in PHP. This article will introduce how to make such a determination.

How to use python requests post How to use python requests post Apr 29, 2023 pm 04:52 PM

Python simulates the browser sending post requests importrequests format request.postrequest.post(url,data,json,kwargs)#post request format request.get(url,params,kwargs)#Compared with get request, sending post request parameters are divided into forms ( x-www-form-urlencoded) json (application/json) data parameter supports dictionary format and string format. The dictionary format uses the json.dumps() method to convert the data into a legal json format string. This method requires

How to Fix Can't Connect to App Store Error on iPhone How to Fix Can't Connect to App Store Error on iPhone Jul 29, 2023 am 08:22 AM

Part 1: Initial Troubleshooting Steps Checking Apple’s System Status: Before delving into complex solutions, let’s start with the basics. The problem may not lie with your device; Apple's servers may be down. Visit Apple's System Status page to see if the AppStore is working properly. If there's a problem, all you can do is wait for Apple to fix it. Check your internet connection: Make sure you have a stable internet connection as the "Unable to connect to AppStore" issue can sometimes be attributed to a poor connection. Try switching between Wi-Fi and mobile data or resetting network settings (General > Reset > Reset Network Settings > Settings). Update your iOS version:

How does java initiate an http request and call the post and get interfaces? How does java initiate an http request and call the post and get interfaces? May 16, 2023 pm 07:53 PM

1. Java calls post interface 1. Use URLConnection or HttpURLConnection that comes with java. There is no need to download other jar packages. Call URLConnection. If the interface response code is modified by the server, the return message cannot be received. It can only be received when the response code is correct. to return publicstaticStringsendPost(Stringurl,Stringparam){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newSt

See all articles