2011-10-24 52 views
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>'; 
} 
?> 

我想网址 - domain.com/article/name_of_article,但domain.com/文章不起作用 - 错误HTTP_Exception_404 [ 404 ]: The requested URL article was not found on this server.为什么我得到这个错误?

+0

你可能应该说方法而不是功能... –

回答

1
  1. 设置在控制器的行动路线是一个坏主意 - 它的路线移动到的bootstrap.php
  2. 更改为:

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

+0

非常感谢,matino! :) – reGative

1

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