Laravel初心者です。「PHPフレームワーク Laravel入門」という書籍で勉強中です。
http://homestead.test/hello は正常に表示されるのですが、個別のレコードをID番号で検索して表示するために、クエリ文字列で /hello?id=番号 とパラエータ指定してアクセスすると、画面が真っ白になります。
エラーメッセージが出ないため、原因がわかりません。さらに必要な情報があれば、御指摘ください。よろしくお願いします。
Controller
** app/Http/Controllers/HelloController.php **
php
1<?php 2namespace App\Http\Controllers; 3 4use Illuminate\Http\Request; 5use Illuminate\Http\Response; 6use App\Http\Requests\HelloRequest; 7use Validator; 8use Illuminate\Support\Facades\DB; 9 10class HelloController extends Controller 11{ 12 public function index(Request $request) { 13 if (isset($request->id)) { 14 $param = ['id' => $request->id]; 15 $items = DB::select('select * from people where id = :id', $param); 16 } else { 17 $items = DB::select('select * from people'); 18 return view('hello.index', ['items' => $items]); 19 } 20 } 21 22 public function post(Request $request) { 23 $items = DB::select('select * from people'); 24 return view('hello.index', ['items' => $items]); 25 } 26 27 public function add(Request $request) { 28 return view('hello.add'); 29 } 30 31 public function create(Request $request) { 32 $param = [ 33 'name' => $request->name, 34 'mail' => $request->mail, 35 'age' => $request->age, 36 ]; 37 DB::insert('insert into people (name, mail, age) values (:name, :mail, :age)', $param); 38 return redirect('/hello'); 39 } 40 41 public function edit(Request $request) { 42 $param = ['id' => $request->id]; 43 $item = DB::select('select * from people where id = :id', $param); 44 return view('hello.edit', ['form' => $item[0]]); 45 } 46 47 public function update(Request $request) { 48 $param = [ 49 'id' => $request->id, 50 'name' => $request->name, 51 'mail' => $request->mail, 52 'age' => $request->age, 53 ]; 54 DB::update('update people set name =:name, mail = :mail, age = :age where id = :id', $param); 55 return redirect('/hello'); 56 } 57}
ルーティング
** routes/web.php **
php
1use App\Http\Middleware\HelloMiddleware; 2 3Route::get('hello', 'HelloController@index'); 4Route::post('hello', 'HelloController@post'); 5Route::get('hello/add', 'HelloController@add'); 6Route::post('hello/add', 'HelloController@create'); 7Route::get('hello/edit', 'HelloController@edit'); 8Route::post('hello/edit', 'HelloController@update');
View
** resources/views/hello/index.blade.php **
php
1@extends('layouts.helloapp') 2@section('title', 'Index') 3@section('menubar') 4 @parent 5 インデックスページ 6@endsection 7 8@section('content') 9 <table> 10 <tr><th>Name</th><th>Mail</th><th>Age</th></tr> 11 @foreach ($items as $item) 12 <tr> 13 <td>{{$item->name}}</td> 14 <td>{{$item->mail}}</td> 15 <td>{{$item->age}}</td> 16 </tr> 17 @endforeach 18 </table> 19@endsection
環境
開発環境:Vagrant + VirtualBox / Homestead
言語:PHP 7.3.4-1+ubuntu18.04.1+deb.sury.org+3
フレームワーク:Laravel Framework 5.5.45
DB:SQLite
Mac OSX 10.11.6
回答1件
あなたの回答
tips
プレビュー