如何在cakephp中创建静态页面?

时间:2011-08-01 10:11:21

标签: cakephp

目前正在使用cakephp创建一个拍卖网站。它有一个关于我们的菜单栏,请联系我们。我只创建了默认页面。所以我想创建这些页面。建议我如何创造。

5 个答案:

答案 0 :(得分:7)

旧线程,但我在尝试在2.x中执行相同操作时发现了它。

杰克的回答是正确的,有一个小错字。它应该是

Router::connect('/about', array('controller' => 'pages', 'action' => 'display', 'about'));

希望这有助于其他人,就像我一样。

答案 1 :(得分:4)

about.ctp文件夹中创建/app/views/pages/

然后在Router::connect('/about', array('controller' => 'pages', 'action' => 'display', 'about'));文件中添加/app/config/routes.php。您应该可以在www.yoursite.com/about

访问它

答案 2 :(得分:2)

Read more here

方法1:如果您想创建关于我们的内容页面,可以通过管理界面更改内容的隐私政策遵循以下步骤

Step1:更改pagesController

class PagesController extends AppController {
function beforeFilter() {
    $this->Auth->allow('content');//to allow to be visible for non-logged in users, if you are using login system
    parent::beforeFilter();
}
public function content($id = null, $layout = null, $theme=null) {
    if ($layout) $this->layout = $layout;//if you are using mulitple layouts and themes and want to change it dynamicaly
    if ($theme) $this->theme = $theme;

    $this->set('content', $this->Page->find('first', array('conditions' => array('Page.id' => $id))));
     $this->Page->id= $id;
     $this->set('title_for_layout', $this->Page->field('title'));

}

}

第2步:添加包含所需字段的表格内容,例如ID,标题,内容,图片,主题,布局等。 第3步:在View / Pages中添加content.ctp

 <div class="row innerPage">    
<div class="col-lg-12 col-md-12 col-sm-12">
  <div class="row userInfo">
    <div class="col-xs-12 col-sm-12">
      <h1 class=" text-left border-title"> <?php echo $content['Page']['title'];?> </h1>
      <div class="w100 clearfix">
        <?php echo $content['Page']['content'];?>
      </div>
    </div>
  </div>


但是你可以根据需要改变html,我更喜欢bootstrap框架。

然后你可以用它作为

<?php echo $this->html->link("Terms of Services", array("controller" => "pages", "action" => "content", 5), array("class" => 'themeprimary','target'=>'_blank')) ?>

这将生成一个链接yoursite / pages / content / 5。 5是要显示详细信息的行的id。

如果您想要像yoursite / terms这样的链接,那么您还需要一个步骤。在routes.php中添加此行。

Router::connect('/terms', array('controller' => 'pages', 'action' => 'content',5)); 

方法2:您只需显示没有任何数据库的内容 第1步:只需在“视图/页面”下创建一个about.ctp,然后放置要显示的内容 第2步:更改您的pagesController。添加关于

的方法
public function about($layout = null) {
    $this->set('title_for_layout', 'About');    
}

多数民众赞成。

答案 3 :(得分:2)

由于新版本的cakephp刚刚问世,我已添加此答案以处理较新版本(3.x)。

要链接到静态页面,您仍然使用PageController,但代码稍有变化。

这里是3.x版本中需要的代码

$routes->connect('/about', ['controller' => 'Pages', 'action' => 'display', 'about']);

您可以阅读有关新routing system here

的更多信息

我与cakephp没有任何关系。我添加了这个答案,因为我在3.0

中搜索如何执行此操作时发现了这篇文章

答案 4 :(得分:0)

您可以将pages controller用于此目的。

使用APP/views/pages/about_us.ctp等名称在contact_us.ctp创建视图,您可以在网址上访问这些视图:

www.site.com/pages/about_us

然后,您可以通过路由更改这些URI的外观。