前提・実現したいこと
パイザラーニングをしているときに引っかかりました。
詳細画面を作ろうのレッスンです。
foreachをする際は$diaries as $diaryと入力すると、思うのですが、
$diariesが定義されていないと表示されます。
これは複数形だと認識されていないと思いますが、どうなんでしょうか?
全然わかりません。よろしくおねがいします!
発生している問題・エラーメッセージ
エラーメッセージ Undefined variable: diaries (View: /home/ubuntu/myblog/resources/views/show.blade.php)
該当のソースコード
<?php namespace App\Http\Controllers; use App\Diary; use Illuminate\Http\Request; class DiaryController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $message = 'Welcome to my page!'; $diaries = Diary::all(); return view('index', ['message' => $message, 'diaries' => $diaries]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * 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\Diary $diary * @return \Illuminate\Http\Response */ public function show(Request $request, $id ,Diary $diary) { $diary = Diary::find($id); return view('show', ['diary' => $diary]); } /** * Show the form for editing the specified resource. * * @param \App\Diary $diary * @return \Illuminate\Http\Response */ public function edit(Diary $diary) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Diary $diary * @return \Illuminate\Http\Response */ public function update(Request $request, Diary $diary) { // } /** * Remove the specified resource from storage. * * @param \App\Diary $diary * @return \Illuminate\Http\Response */ public function destroy(Diary $diary) { // } }
該当のソースコード
<?php /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { return view('welcome'); }); Route::get('/diary', 'DiaryController@index')->name('diary.list'); Route::get('/diary/{id}', 'DiaryController@show')->name('diary.show');
該当のソースコード
<!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>myblog</title> <style>body {padding: 10px;}</style> </head> <body> <h1>This is myblog page</h1> <p>{{ $diary ->topic }}</p> @foreach($diaries as $diary) <p> <a href='{{ route("diary.show", ["id" => $diary->id]) }}'> {{ $diary->content }} </a> </p> @endforeach <p> <a href={{ route('diary.list') }}>一覧に戻る</a> </p> </body> </html>
該当のソースコード
<!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>paiza bbs</title> <style>body {padding: 10px;}</style> </head> <body> <h1>myblog Index Page</h1> <p>{{ $message }}</p> <p> <a href={{ route('diary.list') }}>一覧に戻る</a> </p> </body> </html>
回答1件
あなたの回答
tips
プレビュー