2016-07-27 22 views
2

私はLaravelを学ぶのがとても新しいです。私はデータベースからデータを取得し、それを表示したい。できます。しかし、私はリンクとして(データベースからフェッチされた)タイトルを使用したいと思います。しかし、私はNotFoundHttpExceptionを取得します。ここ は私のルートはNotFoundHttpException Laravel

Route::get('articles', '[email protected]'); 

Route::get('articles/{id}', '[email protected]'); 

である私のコントローラは

class ArticleController extends Controller 
{ 
    public function index() 
    { 

     $articles=Article::all(); 

     return view('articles.index', compact('articles')); 
    } // 
    public function show($id){ 

     $article=Article::find($id); 

     return view('articles.show',compact('article')); 
    } 

    } 

ビューが

@extends('new_welcome') 
@section('content') 
     <h1> Articles </h1> 

     @foreach($articles as $article) 
      <article> 
       <h2> 


        <a href="{url ('/articles',$article->id)}">{{$article->title}}</a> 

       </h2> 
       <div class="body">{{ $article->body}}</div> 
      </article> 
    @endforeach 
@stop 

である誰かが、この場合には私を助けることができますか?あなたは1つの中括弧(ブレードエンジンはそれをスキップ) "を食べる" きのためにあなたの問題がある

+0

、あなたは '指数()'関数で3 'return'文を持っている... –

+0

エラーはそれがルートを見つけることができないことを意味し、あなたが入力しているURLは何ですか? –

+0

2つの場合、個々の 'article'を表示するために定義されたルートはありません。これは' NotFoundHttpException'が出てくる場所です。 –

答えて

0

されました:

href="{{url ('/articles',$article->id)}}" 

として:

href="{url ('/articles',$article->id)}" 

がなければなりませんあなたは言った:

私は1つの記事のタイトルをクリックすると私に の特定の記事を表示することはできません。しかし、もし私がURL "homestead.app/articles/2"を与えれば;

ので、あなたは、あなたがリンクをクリックしたときお使いのブラウザのアドレスバーになることがわかります。

homestead.app/{url ('/articles',$article->id)} 



私はしないようにすることができアドバイスをあげるように、あなたが初心者だからurl()ヘルパーを使用してビューで直接URLを設定します。

今後は、articlesからartclsにURLを変更することにした場合、正常に動作するアプリが必要な場合は、名前付きルートが優れています。この名前付きルートでは、ビューファイルの一括変更URLからあなたを守ります。 (あなたが唯一のパスを変更し、変わらない景色を保つように、URLを変更する必要がある場合)の変更のためのあなたのルーティングが柔軟になり'as'ディレクティブ使用してあなたのルートに

セット名:

Route::get('articles/{id}', ['as' => 'article', 'uses' => '[email protected]']); 
Route::get('articles', ['as' => 'articles', 'uses' => '[email protected]']); 

変更あなたのビューファイルを(見つけますHREFでrouteヘルパー):1の場合

@extends('new_welcome') 
@section('content') 
    <h1> Articles </h1> 

    @foreach($articles as $article) 
     <article> 
      <h2> 

       <a href="{{ route('article', $article->id) }}">{{$article->title}}</a> 

      </h2> 
      <div class="body">{{ $article->body}}</div> 
     </article> 
    @endforeach 
@stop 
+0

この方法は機能しません。 – Tasmin

+0

あなたのWebサーバーが正しく書き換えられないようです – num8er

+0

特定の記事をクリックした後に表示されるURLを表示することはできますか? – Tasmin

関連する問題