攻克CakePHP(PHP中的Ruby On Rails框架)图文介绍第2/2页

 更新时间:2008年10月22日 21:56:58   作者:  
CakePHP框架实例介绍分析。图文并茂

增加Cotroller模块:

app/controllers/posts_controller.php

代码:

<?php

require_once ('cake/app_controller.php');

class PostsController extends AppController {

    
public $name = 'Posts';

    
function index()
    {
          
$this->set('posts', $this->Post->findAll());
    }

    
function view($id = null)
    {
        
$this->Post->id = $id;
        
$this->set('post', $this->Post->read());
    }
    
    
function add()
    {
        
if (!empty($this->data))
        {
            
if ($this->Post->save($this->data))
            {
                
//$this->flash('Your post has been saved.','/posts');
                $this->redirect("/posts/index");
            }
        }
    }
    
    
function delete($id)
    {
        
$this->Post->del($id);
        
//$this->flash('The post with id: '.$id.' has been deleted.', '/posts');
        $this->redirect("/posts/index");
    }
    
    
function edit($id = null)
    {
        
if (empty($this->data))
        {
            
$this->Post->id = $id;
            
$this->data = $this->Post->read();
        }
        
else
        {
            
if ($this->Post->save($this->data['Post']))
            {
                
//$this->flash('Your post has been updated.','/posts');
                $this->redirect("/posts/index");
            }
        }
    }
}

?>

增加页面模块:

/app/views/下追加posts文件夹,然后再添加4个页面(一般后缀为.rhtml)

代码依次为:

index.thtml

<h1>Blog posts</h1>
<p><?php echo $html->link("Add Post", "/posts/add"); ?>
<table>
    
<tr>
        
<th>Id</th>
        
<th>Title</th>
        
<th>Created</th>
    
</tr>

   
<!-- Here's where we loop through our $posts array, printing out post info -->

    
<?php foreach ($posts as $post): ?>
    
<tr>
        
<td><?php echo $post['Post']['id']; ?></td>
        
<td>
            
<?php echo $html->link($post['Post']['title'], '/posts/view/'.$post['Post']['id']);?>
            
<?php echo $html->link(
                'Delete',
                "/posts/delete/{$post['Post']['id']}",
                null,
                'Are you sure?'
            )
?>
            
<?php echo $html->link('Edit', '/posts/edit/'.$post['Post']['id']);?>
        
</td>
        
</td>
        
<td><?php echo $post['Post']['created']; ?></td>
    
</tr>
    
<?php endforeach; ?>

</table>

view.thtml

<h1><?php echo $post['Post']['title']?></h1>

<p><small>Created: <?php echo $post['Post']['created']?></small></p>

<p><?php echo $post['Post']['body']?></p>

<br>

<p><?php echo $html->link('Return', '/posts/index/');?></p>

edit.thtml

<h1>Edit Post</h1>
<form method="post" action="<?php echo $html->url('/posts/edit')?>">
    
<?php echo $html->hidden('Post/id'); ?>
    
<p>
        Title:
        
<?php echo $html->input('Post/title', array('size' => '40'))?>
        
<?php echo $html->tagErrorMsg('Post/title', 'Title is required.') ?>
    
</p>
    
<p>
        Body:
        
<?php echo $html->textarea('Post/body', array('rows'=>'10')) ?>
        
<?php echo $html->tagErrorMsg('Post/body', 'Body is required.') ?>
    
</p>
    
<p>
        
<?php echo $html->submit('Save') ?>
    
</p>
</form>

add.thtml

<h1>Add Post</h1>
<form method="post" action="<?php echo $html->url('/posts/add')?>">
    
<p>
        Title:
        
<?php echo $html->input('Post/title', array('size' => '40'))?>
        
<?php echo $html->tagErrorMsg('Post/title', 'Title is required.') ?>
    
</p>
    
<p>
        Body:
        
<?php echo $html->textarea('Post/body', array('rows'=>'10')) ?>
        
<?php echo $html->tagErrorMsg('Post/body', 'Body is required.') ?>
    
</p>
    
<p>
        
<?php echo $html->submit('Save') ?>
    
</p>
</form>

测试URL: http://localhost/phpblog/posts/
参考网页:http://manual.cakephp.org/appendix/blog_tutorial
以下是CakePHP框架的一些特性: http://www.lostk.com/blog/cakephp_note/

e="COLOR: #000000">
        Title:
        <?php echo $html->input('Post/title', array('size' => '40'))?>
        
<?php echo $html->tagErrorMsg('Post/title', 'Title is required.') ?>
    
</p>
    
<p>
        Body:
        
<?php echo $html->textarea('Post/body', array('rows'=>'10')) ?>
        
<?php echo $html->tagErrorMsg('Post/body', 'Body is required.') ?>
    
</p>
    
<p>
        
<?php echo $html->submit('Save') ?>
    
</p>
</form>

测试URL: http://localhost/phpblog/posts/
参考网页:http://manual.cakephp.org/appendix/blog_tutorial
以下是CakePHP框架的一些特性: http://www.lostk.com/blog/cakephp_note/

相关文章

  • PHP对XML内容进行修改和删除实例代码

    PHP对XML内容进行修改和删除实例代码

    这篇文章给大家主要介绍了利用PHP对XML内容进行修改和删除的原理和方法,文中通过示例代码介绍的很详细,相信对大家的理解和学习很有帮助,感兴趣的朋友们可以参考借鉴,下面来一起看看吧。
    2016-10-10
  • php设计模式 Composite (组合模式)

    php设计模式 Composite (组合模式)

    将对象组合成树形结构以表示"部分-整体"的层次结构,使得客户对单个对象和复合对象的使用具有一致性
    2011-06-06
  • ie6 动态缩略图不显示的原因

    ie6 动态缩略图不显示的原因

    其实这又引出了服务器的输出控制和浏览器的缓存问题,这有点复杂了,以后有机会再研究了。
    2009-06-06
  • PHP操作数组相关函数

    PHP操作数组相关函数

    PHP数组是一个重要的概念,它包含有大量的函数,方便人们的开发…现将它的数组分类,以方便查询及应用.
    2011-02-02
  • php对象和数组相互转换的方法

    php对象和数组相互转换的方法

    这篇文章主要介绍了php对象和数组相互转换的方法,通过两个自定义函数实现对象与数组的相互转换功能,非常简单实用,需要的朋友可以参考下
    2015-05-05
  • PHP XML数据解析代码

    PHP XML数据解析代码

    PHP解析XML 数据代码,用于PHP读取XML数据。
    2010-05-05
  • php中取得文件的后缀名?

    php中取得文件的后缀名?

    今天给学员讲课,关于数组的应用举例,说了怎样取得一个文件的后缀名,总结一下,方法挺多的,下面分享给大家
    2012-02-02
  • PHP标准类(stdclass)用法示例

    PHP标准类(stdclass)用法示例

    这篇文章主要介绍了PHP标准类(stdclass)用法,结合实例形式分析了php内置标准类的原理与使用方法,需要的朋友可以参考下
    2016-09-09
  • sphinx增量索引的一个问题

    sphinx增量索引的一个问题

    很早使用coreseek来实现对内容的搜索,并使用主索引+增量索引来实现新发的内容很快能搜索到,使用一直挺稳定。
    2011-06-06
  • php将textarea数据提交到mysql出现很多空格的解决方法

    php将textarea数据提交到mysql出现很多空格的解决方法

    这篇文章主要介绍了php将textarea数据提交到mysql出现很多空格的解决方法,分析了空格出现的原因以及删除空格的简单实现技巧,非常具有实用价值,需要的朋友可以参考下
    2014-12-12

最新评论