dpjjmo3079 2011-04-01 07:58
浏览 21

cakePHP中的动态页面

So I've been creating my first client website with cakePHP, and have run into a problem.

I'm trying to create a system similar to WordPress where you can create new pages (simply title, slug and content), and they are served up to their slug address (i.e. About will be available at mysite.com/about).

I've created my own controller & model for 'Pages' (overwriting the core pages controller), and have set up simple functions (view, admin_add, admin_delete). My model is simple, just the $name so it can connect to the db.

I'm pretty sure my problem lies in config/routes.php. Here is the code I'm currently using:

App::import('model', 'Page');
$Page = new Page();
$pages = $Page->find('list', array('fields' => array('id', 'slug')));
Router::connect('/:pages', array('controller' => 'pages'), array('Page' => implode($pages, '|')));

It just doesn't work though. When I visit an page I have (i.e. mysite.com/newpage), it tells me the newpage controller can't be found.

PLEASE HELP! I'm on a tight deadline :)

Thanks,

~harley

  • 写回答

1条回答 默认 最新

  • dsyak22488 2011-04-06 14:26
    关注

    You need to extend the Class CakeRoute. Put your custom model code in there, and then pass that class name to your route definition in routes.php

    routes.php would look something like this.

    App::import('Lib', 'routes/MyCustomRoute');
    Router::connect('/:page', array('controller'=>'pages', 'action'=>'display'), array('routeClass' => 'MyCustomRoute'));
    

    Then over in libs/routes/my_custom_route.php

    class MyCustomRoute extends CakeRoute {
    function parse($url) {
        $params = parent::parse($url);
        //import your model
        App::import('Model','Page');
        //create model object
        $Page = new Page();
        //find using $params['page'];
        if($Page->find('first', array('conditions'=>array('page.slug'=>$params['page'])))){
             //return $params if successfull match 
           return $params
        } else 
           return false;
        //return false to fall through to next route.
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)