現環境
PHP:7.4.9
Laravel:5.8.38
実現したいこと
「Shares」テーブルの「text」を検索して表示させたい。
下記サイトを参考にいたしました。
参考サイト
データ一覧の表示は完成したので、検索出来るようにと以下のコードをコントローラーに追記したところ、
データ一覧の表示画面で次のエラーが表示されるようになりました。
「Msyntax error, unexpected 'else' (T_ELSE), expecting function (T_FUNCTION) or const (T_CONST)」
どのように修正を行えば良いか等アドバイスをいただけないでしょうか。
追記したコード
public function search(Request $request) { $keyword_text = $request->text; if (!empty($keyword_text)) { $query = Share::query(); $shares = $query->where('text','like', '%' .$keyword_text. '%')->get(); $message = "「". $keyword_text."」を含む名前の検索が完了しました。"; return view('/searched')->with([ 'shares' => $shares, 'message' => $message, ]); } } else { $message = "検索結果はありません。"; return view('/searched')->with('message',$message); }
/app/Http/Controllers/SearchController.php (全文)
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\DB; use App\Http\Controllers\Controller; use App\Models\Share; class SearchController extends Controller { public function index() { $shares = Share::all(); return view('searches.index')->with('shares', $shares); } public function search(Request $request) { $keyword_text = $request->text; if (!empty($keyword_text)) { $query = Share::query(); $shares = $query->where('text','like', '%' .$keyword_text. '%')->get(); $message = "「". $keyword_text."」を含む名前の検索が完了しました。"; return view('/searched')->with([ 'shares' => $shares, 'message' => $message, ]); } } else { $message = "検索結果はありません。"; return view('/searched')->with('message',$message); } }
web.php
<?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'); }); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); Route::get('/search', 'SearchController@index'); Route::get('/searched','SearchController@search');
/resources/views/searches/index.blade.php
@extends('layouts.app') @section('content') <h1>検索条件を入力してください</h1> <form action="{{ url('/searched')}}" method="post"> {{ csrf_field()}} {{method_field('get')}} <div class="form-group"> <input type="text" class="form-control col-md-5" placeholder="検索したい名前を入力してください" name="text"> </div> <button type="submit" class="btn btn-primary col-md-5">検索</button> </form> @if(session('flash_message')) <div class="alert alert-primary" role="alert" style="margin-top:50px;">{{ session('flash_message')}}</div> @endif <div style="margin-top:50px;"> <h1>Shares</h1> <table class="table"> @foreach($shares as $share) <tr> <td>{{$share->text}}</td> </tr> @endforeach </table> </div> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script> </body> @endsection
/resources/views/searches/search.blade.php
@extends('layouts.app') @section('content') <div style="margin-top:50px;"> <h1>検索結果</h1> @if(isset($shares)) <table class="table"> <tr> <th>Share Latest</th> </tr> @foreach($shares as $share) <tr> <td>{{$share->text}}</td> </tr> @endforeach </table> @endif @if(!empty($message)) <div class="alert alert-primary" role="alert">{{ $message}}</div> @endif </div> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script> </body> @endsection
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。