2014-02-12 76 views
0

這是很容易打開的形式,將提交給一個特定的網址:Laravel:在窗體的URL添加查詢參數?

echo Form::model($model, array('route' => array('user', $user->id))) 

,這會使得這樣的事情:

<form action="/user/1"> 

我想:

<form action="/user/1?q=54"> 

在其他也就是說,我怎樣才能改變窗體的方法來支持附加的查詢參數的,在這種情況下,所謂的「q」?

問這將是一個更簡單的方法:就是有沒有辦法生成使用路由的,以便包括查詢放慢參數的URL?

+0

是不是有一個原因,你不能只添加一個名爲q的隱藏字段,並將其值設置爲54?這樣就可以像對待任何其他GET或POST變量一樣對待它。 – user3158900

+0

這只是欠整齊。我不想添加整個字段只是爲了稍微改變行爲。 – coderama

+0

您是否使用POST或GET? – user3158900

回答

2

不幸的是,我發現這個問題的唯一辦法是在變量追加到這樣的網址:

echo Form::model($model, array('route' => array('user', $user->id.'?q=54'))) 

雖然你爲什麼不只是使用搜索引擎友好的參數,如正常嗎?因此,它會出來像

<form action="/user/1/54"> 

您還可以使用帶參數的路線,讓您的網址,但是你想他們看看,如(我假設在你的代碼中的Q表示質疑:

Route::post('user/{id}/q/{q_id}', '[email protected]'); 

或者

Route::post('user/{id}/question/{q_id}', '[email protected]'); 
0

有同樣的問題,通過在窗體中添加隱藏字段,並從控制器調用它解決。

{{ Form::hidden('_test', 'tags') }} 

在控制器中一定要設置這樣的:

public function update($id) 
{ 
    $test= Input::get('_test', 'default'); 
    $input = array_except(Input::all(), '_method', '_test'); 
    // prevent from updating an inexistent field 
... 

不能@限制史蒂夫的回答原因發表評論,將在這裏更新:

它不會因爲工作「Form :: model」將處理「HTML :: entities()」中的值,所以

$id . "?test" 

將會是

1%3Ftest