0

我为我的博客创建了功能。

模型 -

public function get_article($nosaukums) {
    $query = DB::query(Database::SELECT, 'SELECT * FROM ieraksti WHERE virsraksts = :nosaukums')
            ->parameters(array(':nosaukums' => $nosaukums))->execute();
    return $query;
}

控制器 -

public function action_article()
{
    Route::set('article', 'article/(name)', array('name' => '.+'))
            ->defaults(array(
                'controller' => 'index',
                'action' => 'article',

            ));
        $this->template->content = View::factory('index/article')
                ->set('query', Model::factory('index')->get_article($nosaukums));
}

并查看 -

<?php
foreach($nosaukums as $article)
{
    echo '<h3>'.$article['virsraksts'].'</h3>';
}
?>

我想访问 url - domain.com/article/name_of_article,但 domain.com/article 不起作用 - 错误HTTP_Exception_404 [ 404 ]: The requested URL article was not found on this server.为什么我会收到此错误?

4

2 回答 2

1

错误 404 表示它不存在。这似乎更像是一个 mod_rewrite 问题而不是代码问题(至少,在给出当前细节的情况下)。检查您的 Web 服务器日志以查看服务器实际尝试加载的页面。

于 2011-10-24T17:50:03.223 回答
1
  1. 在控制器操作中设置路由是个坏主意 - 将其移至 bootstrap.php
  2. 将路线更改为:

    Route::set('article', 'article(/<name>)', array('name' => '.+'))
        ->defaults(array(
            'controller' => 'index',
            'action' => 'article',
    ));
    
  3. 在您的控制器中,您应该使用文章名称$this->request->param('name')(这可能是您应该分配给$nosaukums变量的名称,因为它在您的代码中未定义)

于 2011-10-24T20:09:07.363 回答