我为我的博客创建了函数。
模型 -
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.
为什么我收到此错误?
答案 0 :(得分:1)
错误404表示它不存在。这似乎更像是mod_rewrite问题而不是代码问题(至少,给出了当前的详细信息)。检查Web服务器日志以查看服务器实际尝试加载的页面。
答案 1 :(得分:1)
将路线更改为:
Route::set('article', 'article(/<name>)', array('name' => '.+'))
->defaults(array(
'controller' => 'index',
'action' => 'article',
));
在您的控制器中,您应该使用$this->request->param('name')
获取文章名称(这可能是您应该分配给$nosaukums
变量的内容,因为它在您的代码中未定义)