質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

3134閲覧

syntax error, unexpected 'else' (T_ELSE), expecting function (T_FUNCTION) or const (T_CONST)

riki0508

総合スコア2

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2020/10/05 08:43

編集2020/10/06 02:29

現環境

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

else の前に } が2つあったため、else が if と連携出来ていな状態でした。

} の位置を修正することによって本案件のエラーは解決しました。

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); } } }

投稿2020/10/06 07:14

riki0508

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問