функция поиска из базы данных в laravel 5.8 - PullRequest
0 голосов
/ 05 октября 2019

Эта функция поиска еще не работает. Я не знаю, в чем причина. Может кто-нибудь помочь мне найти ошибку?

Это в studentcontroller

public function testsearch()
{
    $q = Input::get ( 'q' );
    if($q != ""){
        $student = Student::where ( 'uniid', 'LIKE', '%' . $q . '%' )->get();
        if (count ( $student ) > 0)
            return view ( 'Searchstudent' )->withDetails ( $student )->withQuery ( $q );
        else
            return view ( 'Searchstudent' )->withMessage ( 'No Details found. Try to search again !' );
    }
    return view ( 'Searchstudent' )->withMessage ( 'No Details found. Try to search again !' );
}

, а это Searchestudant.blade.php

<html>
<head>
<title>Search</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
 <div class="container">
     <form action="/Searchstudent" method="POST" role="Searchstudent">

         <div class="input-group">
             <input type="text" class="form-control" name="q"
                 placeholder="Search sickleave number"> <span class="input-group-btn">
                 <button type="submit" class="btn btn-default">
                     <span class="glyphicon glyphicon-search"></span>
                 </button>
             </span>
         </div>
     </form>
     <div class="container">
         @if(isset($students))
         <table class="table table-striped">
             <thead>
                 <tr>
                     <th>unique id</th>
                     <th>student_id</th>
                 </tr>
             </thead>
             <tbody>
                 @foreach($students as $student)
                 <tr>
                     <td>{{$student->uniid}}</td>
                     <td>{{$student->student_id}}</td>
                 </tr>
                 @endforeach
             </tbody>
         </table>
         @elseif(isset($message))
         <p>{{ $message }}</p>
         @endif
     </div>

</body>
</html>

и это маршрут

    ```Route::get('/searechstudent','StudentController@testsearch');  ```

Ошибка при запуске этой функции:

MethodNotAllowedHttpException Нет сообщения

Ответы [ 2 ]

0 голосов
/ 05 октября 2019

Знайте свой адрес маршрута, это должен быть точный маршрут, как вы назвали в форме. Заглавный символ отличается от обычного символа

Route::post('/Searchstudent','StudentController@testsearch');
0 голосов
/ 05 октября 2019

Вы не соответствовали своей маршрутизации между формой блэйда и файлом маршрутов. В вашем blade вы вызвали POST:

<form action="/Searchstudent" method="POST" role="Searchstudent">

В Laravel он должен совпадать в файле маршрутизации. В вашем файле web.php (маршрутизация) вы принимаете ответ GET:

Route::get('/searechstudent','StudentController@testsearch');

Измените маршрут на ответ POST:

Route::post('/searechstudent','StudentController@testsearch');

Кроме того, он может помочь вам посмотретьв PHP-методе compact() для ваших возвращаемых переменных из вашего контроллера в методе testsearch() - он обеспечивает согласованность и простоту чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...