php - 如何在 Laravel 中获取包含特殊字符的路线
问题描述
我想使用 get 方法提交表单,然后从 URL 获取参数并对其进行处理。但我不知道如何生成我的路线。它一直显示错误Sorry, the page you are looking for could not be found.
,所以 URL 应该是这样的:search/?q=something
。我想something
从 URL 获取并用它进行数据库查询。
网页.php:
Route::get('/search/?q={query}', 'MoviesController@search');
MoviesController.php
public function search($query)
{
$this->validate($query, [
'search' => 'required'
]);
$search = Movie::where('name', 'like', '%' . $query. '%')->get();
return view('inc.search')->with('search', $search);
}
HTML
<form action="/search" method="GET">
{{-- @csrf --}}
<input type="text" name="q" placeholder="search">
<input type="submit">
</form>
我不知道我的 HTML 部分是真是假!
解决方案
?q={query}
您在 Route 定义中不需要它,因为我很确定这是定义 Route 参数的无效方式。代替
public function search($query){
$this->validate($query, [
'search' => 'required'
]);
和
public function search(Request $request){
$this->validate($request->all(), [
'q' => 'required'
]);
$search = Movie::where('name', 'like', '%' . $request->input("q"). '%')->get();
并确保您use Illuminate\Http\Request;
的MoviesController
.
推荐阅读
- css - ng-select 使用图像 url 更改下拉箭头
- powershell - 比较两个 csv 表并同时写入其中一个
- java - 带有图像(文件)的 Java Spring REST Api
- postgresql - Postgres:在同一列字符串中包含子选择和子选择的派生计算
- php - 在 php/symfony 中取消设置会话数组的有效方法
- dart - 使用 Aqueduct API Dart 在 Heroku 中部署的错误
- android - Android 应用程序(Ionic、React)中没有后端连接,但它在具有相同基本代码的 Web 应用程序中工作
- chart.js - 如何忽略 chart.js 中的标签
- html - Ionic:如何在 Shadow DOM 中更改 span.button-inner 的 CSS
- docker - Pulumi 不执行 Kubernetes Pod 的优雅关闭