2014-05-06 101 views
-2

我有以下途徑:Laravel 4 - 隱藏URL中的變量。

Route::resource('projects.deliveries.tasks', 'TaskController'); 

如果我想創建一個任務,當然,我的URL看起來像這樣:

http:://test.dev/projects/1/deliveries/3/tasks/create 

對於項目編號1和交貨數量3

http://i.imgur.com/RlHHY31.jpg

但我不希望數字顯示在URL中,因爲任務應該是可創建的,沒有驗證驗證或登錄。

有沒有辦法隱藏這些數字,讓我得到一個乾淨的URL是這樣的:

http:://test.dev/projects/delivereis/tasks/create 

而Laravel從我的邏輯的理解,這是項目1和devivery 3,其任務是被創建?

+0

爲此,我認爲您應該創建一個自定義資源。 – Arda

+3

它怎麼知道你的意思是項目1和交付3?你有(並且你會一直擁有)只有一個項目和只有一個交付? – Quentin

+0

我假設將會有一個表單被選中,在這種情況下'Input'類將被用來檢索這些變量。爲什麼URI中的數字會阻止用戶在未登錄的情況下編輯這些數字?這看起來更像是一個過濾器問題。 – user3158900

回答

0

如果你想這樣做,你應該手動指定你的路線。使用Route::resource()是非常好的,如果你絕對要按預期使用資源(有詳細的路由),但它不會提供很大的靈活性。實際上,對於大多數項目,實際上建議您手動定義所有路線,以便爲您提供最佳控制(並且它也是routes.php文件中的很好的自我記錄)。

Route::get('projects/deliveries/tasks/create', ['as' => 'projects.deliveries.tasks.create', 'uses' => '[email protected]']); 
Route::post('projects/deliveries/tasks', ['as' => 'projects.deliveries.tasks.store', 'uses' => '[email protected]']);