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

私は、URLにしたい - 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

ありがとう、マチノ! :) – reGative

1

エラー404は、存在しないことを意味します。これは、コードの問題よりもmod_rewriteの問題に似ているようです(少なくとも、現在の詳細が示されています)。サーバーが実際にロードしようとしているページを確認するには、Webサーバーのログを確認してください。コントローラのアクションにルートを設定する

関連する問題