0

我正在关注锂的快速入门指南:http: //li3.me/docs/manual/quickstart

我在 /var/www/my_app/app/models/Posts.php 中创建了我的帖子模型

<?php

namespace app\models;

class Posts extends \lithium\data\Model {
}

?>

我在 /var/www/my_app/app/controllers/PostsController.php 中创建了我的帖子控制器

<?php

namespace app\controllers;

class PostsController extends \lithium\action\Controller {

    public function index() {
            return array('foo' => 'bar', 'title' => 'Posts');
    }
}

?>

我在 /var/www/my_app/app/views/posts/index.html.php 中创建了我的视图

Lithium is less dense than <?=$foo;?>ium.

然后快速入门指南说我应该能够通过转到查看我的帖子索引页面

http://localhost/my_app/posts

但我得到一个

Not Found

The requested URL /my_app/posts was not found on this server.

但是,如果我去

http://localhost/my_app 

将显示 Lithium 附带的默认主页。

所以我尝试通过将此行添加到我的 /var/www/my_app/config/routes.php 文件来解决问题:

Router::connect('/posts', 'Posts::index');

但我得到相同的 Not Found 错误?

4

2 回答 2

3

您需要确保在您的 Apachemod_rewrite中安装并启用它。

还要检查.htaccess文件是否存在并且allow_override是否为虚拟主机正确设置,否则.htaccess文件将被忽略。

有关更多信息,请查看文档中的故障排除部分

于 2013-04-07T16:34:20.657 回答
0

在Routing 文档中稍微深入一点,对方法的参数进行了Router::connect()更全面的解释。后面的部分::应该是路由调用的动作的名称;在您的情况下index(或者可能没有,如果 indexAction 有默认设置;不熟悉锂)。Action您通过从控制器的方法名称中删除后缀来派生“名称” 。我建议更全面地探索路由文档,以免将来让自己头疼。

于 2013-04-06T17:20:20.217 回答