Php laravel 5.8中数据库的搜索功能

Php laravel 5.8中数据库的搜索功能,php,laravel,Php,Laravel,此搜索功能尚未运行。我不知道原因是什么。 谁能帮我找出错误吗 这是在学生控制器中 public function testsearch() { $q = Input::get ( 'q' ); if($q != ""){ $student = Student::where ( 'uniid', 'LIKE', '%' . $q . '%' )->get(); if (count ( $student ) > 0)

此搜索功能尚未运行。我不知道原因是什么。 谁能帮我找出错误吗

这是在学生控制器中

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>
运行此函数时显示错误:

MethodNotAllowedHttpException无消息


刀片表单和路由文件之间的路由不匹配。在您的刀片中您已呼叫POST:

<form action="/Searchstudent" method="POST" role="Searchstudent">
将路由更改为POST响应:

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

此外,它还可以帮助您在
testsearch()
方法中查看控制器返回变量的
compact()
,它可以保持内容的一致性和易读性。

注意您的路由地址,它必须是您在表单中调用的确切路由。资本性质不同于一般性质

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

我做了路线(张贴),但跑步现在显示(对不起,找不到您要查找的页面)。请检查您的拼写。在某些地方,您会注意到“searechstudent”-您的路线和表单操作(
/Searchstudent
)不一样。将表单设置为
/searechstudent
,或修复匹配路径。这是一个拼写错误。仔细检查表单和路由,确保表单操作和路由完全相同。包括船长。get/post功能可以解决您的问题,但前提是您能够找到拼写/大写错误。我将其全部更改为只搜索小写字母。。但它不起作用。我能收到你的电子邮件把这些页面发给你吗?不,请把讨论放在这里。您的控制器是学生控制器吗?您的操作是否在您的blade表单上
/searchstudent
?是您的web.php路径:
route::post('/searchstudent','StudentController@testsearch');它们都拼写正确吗?它们的上限/下限是否完全相同?“页面未找到”错误只能是几件事——以下就是它们。使用“php artisan route:list”查看所有可用的路由,并使用您的表单定义OOPS检查,我没有找到我的路由!我现在能做什么?看起来您的路由定义没有运行,路由器文件(位于搜索路由行的顶部)中的某些内容就是原因。也许某处有回程,或者。把你的路由器文件上传到某处。
Route::post('/Searchstudent','StudentController@testsearch');