当尝试将数据从搜索栏表单发送到路由控制器时,无法使用 $request->input("name") 访问数据。我该如何解决这个问题?
class SearchController extends Controller
{
function search(Request $request){
if(empty($request->input("search"))){
return view("search", ["results" => [], "searchTerm" => ""]);
}
else{
$searchTerm = $request->input("search");
$papers = Papers::where("title", "like", "%".$searchTerm."%")
->orWhere("author", "like", "%".$searchTerm."%")
->orWhere("tags", "like", "%".$searchTerm."%")
->get();
return view("search", ["results" => $papers, "searchTerm" => $searchTerm])->with("data", $request->input());
}
}
}
<form class="form-search flex-center w100" method="GET" action="{{route("search")}}">
<input type="text" name="search" placeholder="Sök..." value="{{empty($search) ? "" : $search}}">
<button id="submit" for="submit">
<span class="shadow"></span>
<span class="edge"></span>
<span class="front flex-center"><img src="{{asset("svg/search.svg")}}" alt="search icon svg"> Sök</span>
</button>
</form>
use App\Http\Controllers\LandingController;
use App\Http\Controllers\SearchController;
use Illuminate\Support\Facades\Route;
Route::get("/", [LandingController::class, "index"])->name("home");
Route::get('/search', [SearchController::class, 'search'])->name('search');
我尝试将输入更改为查询,并且我使用了数据转储,它在请求的输入或查询时给我“[]”,并在 $request 时显示此信息:
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/search"
#requestUri: "/search?search=Repellat+sint+autem+facilis+odit."
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session:
Illuminate\Session\SymfonySessionDecorator {#278 ▶}
#locale: null
#defaultLocale: "en"
-preferredFormat: null
-isHostValid: true
-isForwardedValid: true
-isSafeContentPreferred: ? bool
-trustedValuesCache: []
-isIisRewrite: false
#json: null
#convertedFiles: null
#userResolver: Closure($guard = null) {#237 ▶}
#routeResolver: Closure() {#246 ▶}
basePath: ""
format: "html"
您正在将发布数据发送到定义为 GET 路由的路由。 更改路线:
Route::post('/search', [SearchController::class, 'search'])->name('search');
您的表格:
<form class="form-search flex-center w100" action="{{route("search")}}" method="POST">
并将 CSRF 令牌添加到表单中
{{ csrf_field() }}