我有一个使用laravel 5.7和vue.js的多供应商网站项目。我将以下代码用于搜索功能。
我的 Web.php :
Route::post('product/search','Api\productController@search');
我的控制器:
public function search(Request $request)
{
$searchTitle = $request->title;
$searchCategory = $request->category;
$searchUni = $request->uni;
$searchCity = $request->city;
if ($searchTitle || $searchCategory || $searchUni || $searchCity) {
$ads = advertise::when($searchCategory,function ($query) use ($searchCategory) {
return $query->where('category_id','like',"%{$searchCategory}%");
})
->when($searchUni,function ($query) use ($searchUni) {
return $query->where('university',"%{$searchUni}%");
})
->when($searchCity,function ($query) use ($searchCity) {
return $query->where('city',"%{$searchCity}%");
})
->when($searchTitle,function ($query) use ($searchTitle) {
return $query->where('title',"%{$searchTitle}%");
})
->where('status','=',1)->orderBy('created_at','desc')->paginate(18)
->appends(request()->query());
} else {
$ads = advertise::where('status','desc')->paginate(18);
}
$i = 0;
foreach($ads as $sd){
$images = image::where('adver_id',$sd->id)->get();
// return response()->json($images);
if(!$images->isEmpty()){
// return response()->json($images);
$ads[$i]->image1= $images[0]->image;
}
$i=$i+1;
}
return new productCollection($ads);
}
我的 vue-route.js 中的axios:
axios.post("/api/product/search/",this.searchbox).then(response => {
if( response.data.data.length === 0 ) {
this.showTeezers = "nothing"
this.$store.state.teezers=[]
} else {
this.$store.state.teezers=response.data.data
}
}).catch(error => {
console.log(error)
})
当我在本地主机上运行项目时,它运行良好,但是当我将其移至 host (Linux服务器)中时,则无法正常工作。该错误出现在主机中:
“此路由不支持GET方法。受支持的方法: POST。”,405方法不允许