laravel ルートを追加したがリンク先に飛ばない
Q&A
laravelのリンク生成
例)
laravelで簡単な掲示板を作成するために記事詳細ページ、投稿ページなどの動作確認をしています。
リンク生成の実装中にエラーが発生しました。
解決方法を教えて下さい。
ブラウザでリンクをクリックしたがリンク先に飛ばない状況です。
<web.phpソースコード>
<?php
Route::get('/', function () {
return redirect('/articles');
});
Route::get('/articles', 'ArticleController@index')->name('article.list');
Route::get('/article/new', 'ArticleController@create')->name('article.new');
Route::get('/article/{id}', 'ArticleController@show')->name('article.show');
<ArticleController.phpソースコード>
class ArticleController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$message = 'Hello world';
$articles = Article::all();
return view('index', ['message' => $message, 'articles' => $articles]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create(Request $request)
{
$article = new Article();
$article->content = 'Hello tinker';
$article->user_name = 'kodmaa';
$article->save();
return redirect('/articles');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param \App\Article $article
* @return \Illuminate\Http\Response
*/
public function show(Request $request, $id, Article $article)
{
$message = 'This is your article ' . $id;
$article = Article::find($id);
return view('show', ['message' => $message, 'article' => $article]);
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Article $article
* @return \Illuminate\Http\Response
*/
public function edit(Article $article)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Article $article
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Article $article)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Article $article
* @return \Illuminate\Http\Response
*/
public function destroy(Article $article)
{
//
}
}
<index.blade.phpソースコード>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset='utf-8'>
<title>Web application</title>
<style>body {padding: 10px;}</style>
</head>
<body>
<h1>Web application</h1>
<p>{{ $message }}</p>
@foreach ($articles as $article)
<p>
<a href='{{ route("article.show", ["id" => $article->id]) }}'>
{{ $article->content }},
{{ $article->user_name }}
</a>
</p>
@endforeach
<div>
<a href={{ route('article.new') }}>新規投稿</a>
</div>
</body>
</html>
<show.blade.php>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset='utf-8'>
<title>Web application</title>
<style>body {padding: 10px;}</style>
</head>
<body>
<h1>Web application</h1>
<p>{{ $message }}</p>
<p>{{ $article->content }}</p>
<p>{{ $article->user_name }}</p>
<p>
<a href={{ route('article.list') }}>一覧に戻る</a>
</p>
</body>
</html>
例)
web.phpにルートの追加
Route::get('/articles', 'ArticleController@index')->name('article.list');
Route::get('/article/new', 'ArticleController@create')->name('article.new');
Route::get('/article/{id}', 'ArticleController@show')->name('article.show');