Php Laravel:在表单的url中添加查询参数?

Php Laravel:在表单的url中添加查询参数?,php,forms,laravel,Php,Forms,Laravel,打开将提交到特定url的表单非常容易: echo Form::model($model, array('route' => array('user', $user->id))) 这将呈现如下内容: <form action="/user/1"> echo Form::model($model, array('route' => array('user', $user->id.'?q=54'))) 我想: <form action="/user/

打开将提交到特定url的表单非常容易:

echo Form::model($model, array('route' => array('user', $user->id)))
这将呈现如下内容:

<form action="/user/1">
echo Form::model($model, array('route' => array('user', $user->id.'?q=54')))

我想:

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

换句话说,我如何更改form方法以支持添加查询参数,在本例中称为“q”


一种更简单的提问方式是:有没有一种方法可以使用路由生成URL,从而包含一个查询参数?

不幸的是,我发现这个问题的唯一答案是将变量附加到URL上,如下所示:

<form action="/user/1">
echo Form::model($model, array('route' => array('user', $user->id.'?q=54')))
不过,为什么不像正常情况一样使用SEO友好的参数呢?所以结果会是这样的

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


通过在表单中添加一个隐藏字段并从控制器调用它,解决了相同的问题

{{ 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
...

无法评论@Steve的答案限制原因,将在此处更新:

它将不起作用,因为“Form::model”将处理“HTML::entities()”中的值,所以

将会是

1%3Ftest

有什么原因不能只添加一个名为q的隐藏字段并将其值设置为54?这样一来,它就可以像其他GET或POST变量一样处理,只是不那么整洁。我不想只为了稍微改变行为而添加整个字段。你是用POST还是GET?这是一篇文章,但这真的很重要吗?因为我只想让“action”包含Q=无论表单是GET还是POST都很重要-GET表单不能使用问号语法在操作中指定GET参数,因为当表单从输入生成URL时,它会被删除。至于你的具体问题,我不确定。我建议您查看
UrlGenerator
FormBuilder
代码,看看它们是否能够处理将查询字符串附加到URL的问题。
1%3Ftest