2013-12-21 69 views
1

我是Laravel的新手,我試圖設置一些基本的路由邏輯。我有一條路線可以處理特定的網址格式。這些URL通常是ajax請求(返回彈出窗口的數據)。但是,禁用JavaScript的搜索引擎和用戶將遵循正常的鏈接,所以我希望數據可以在單獨的頁面上返回。爲此,我需要確定請求是否是ajax。我知道我可以這樣做使用:從過濾器返回變量。 Laravel 4

if(Request::ajax()){ 
    // 
} 

我的計劃是做到這一點作爲路由附加到「之前」過濾器的一部分。如果我的想法是正確的,我需要從過濾器返回一個布爾值ajax = true/false。也許這是一個非常簡單的問題,但是我找不到解釋如何從過濾器實際返回像這樣的值的任何地方。我能找到的所有東西似乎都假設任何過濾器邏輯的默認結果必須是重定向。

感謝

編輯:我來,我根本就沒有使用過濾方法在它的目的的方式,簡單地把在我的控制器方法處理程序的結論。但我仍然想知道是否可以從過濾器中返回數據。

回答

-1

在控制器:

if(Request::ajax()){ 

    return Response::json(['message' => 'Hi. Your request was ajax!', 'status' => 1]); 
} 
+0

嗨,謝謝。我確實現在正在使用我的控制器中的邏輯來代替。這實際上並沒有回答我原來的問題呢? – Inigo

-1

簡單的解決辦法我發現那就是用Session::flash這對於只有一個請求填充數據,你可以很容易地得到結果的任何地方。因此,例如:

路線::過濾器( '東西',函數(){

如果(假){

查看:讓('錯誤); //或當你想

}其他{

返回會議:閃存( 'result_var',$ my_result_var);

}

});