2017-06-17 81 views
1

我想發佈一個GET請求來laravel路線,但我得到一個404(未找到)愛可信:發佈帶有參數的GET請求在Laravel

Ajax調用

axios.get('/statisticsJSON', { 
     params: { 
      annee: 2017, 
      mois: 06, 
      jour: 15, 
     } 
     }) 
     .then(function (response) { 
     console.log('Les donnees via ajax'); 
     console.log(response.data); 
     }) 
     .catch(function (error) { 
     console.log(error); 
     }); 

web.php

Route::get('/statisticsJSON/{annee}/{mois}/{jour}', '[email protected]') 
    ->name('statsJSON') 
    ->where('annee', '^(19|20)\d{2}$') 
    ->where('mois', '^(19|20)\d{2}$') 
    ->where('jour', '^(19|20)\d{2}$'); 

控制器

public function showStatisticsJSON(Request $request, $annee=null, $mois=null, $jour=null) 
{ 
    // 
    $annee = $request->get('annee'); 
    $mois = $request->get('mois'); 
    $jour = $request->get('jour'); 
    $emplois = Emploi::whereYear('POSTDATE', '=', $annee) 
      ->whereMonth('POSTDATE', '=', $mois) 
      ->whereDay('POSTDATE', '=', $jour) 
      ->get(); 
    return response()->json(emplois ,200,[],JSON_PRETTY_PRINT); 
} 

鏈接生成

http://localhost:8000/statisticsJSON?annee=2017&mois=6&jour=15 
+0

請不要說「發佈請求」,嘿。 POST和GET是兩種完全不同類型的HTTP請求 - 非常混淆的術語。 – ceejayoz

回答

1

您正在發送查詢參數,而不是原樣路由參數。 Laravel預計

http://localhost:8000/statisticsJSON/2017/6/15

,以便它匹配。首先爲axios.get(my_url,構建網址字符串,並省略params: {}

+0

謝謝btl!但我kindda簡化了我的代碼,所以我會需要我的'params'因爲每次我點擊一個日期我需要檢索'jour = date.getDate(); mois = date.getMonth()+ 1; annee = date.getFullYear();'所以網址將是動態的 –

+0

好的,謝謝我得到了查詢參數和路由參數之間的差異 –

+1

好聽,很高興我可以幫助= D – btl