打开一个提交给特定网址的表单非常容易:
echo Form::model($model, array('route' => array('user', $user->id)))
这将呈现如下内容:
<form action="/user/1">
我想:
<form action="/user/1?q=54">
换句话说,如何更改表单方法以支持添加查询参数,在本例中称为“q”?
一种更简单的问题是:有没有办法使用Route生成URL以包含查询参数?
答案 0 :(得分:2)
不幸的是,我在这个问题上找到的唯一答案是将变量附加到URL上,如下所示:
echo Form::model($model, array('route' => array('user', $user->id.'?q=54')))
虽然为什么不直接使用SEO友好参数?所以它会像
一样出现<form action="/user/1/54">
您还可以使用带参数的路线制作您的网址,但是您希望它们看起来如此(我假设代码中的Q代表问题:
Route::post('user/{id}/q/{q_id}', 'UserController@postQuestion');
或者
Route::post('user/{id}/question/{q_id}', 'UserController@postQuestion');
答案 1 :(得分: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