【问题标题】:RESTful form, get action designRESTful 形式,获取动作设计
【发布时间】:2014-08-11 09:52:58
【问题描述】:

按照 restful 设计,我处理搜索查询的 url 应该如下所示:

/car/search/Audi

/car/search 应该显示搜索表单。我认为表单应该使用GET方法,但是如果我将方法设置为获取(method="get"),它将重定向到/car/search/?query=Audi

如何定义表单,让它重定向到/controller/method/{variable}

编辑:我使用的是 PHP5.4,Laravel 4

【问题讨论】:

  • 你可以使用url-rewriting库来重写你想要的url
  • 我宁愿不要,我应该至少设置5-6个这样的表格,我不想全部重写。

标签: forms get restful-url restful-architecture


【解决方案1】:

这更简单**

Route::get('car', function(){
   echo Form::open(array('url' => 'car/search/', 'method' => 'get'));
   echo Form::text('search');
   echo Form::submit('Click Me!');
   echo Form::close();
});

试试这个它会带你到这个网址car/search?search=[entry]

Route::get('car/search', function(){
return Input::get('search');
});

另一种捕捉它的方法!当您使用带有 GEt 方法的表单时,它总是会给您一个查询参数。因为它意味着什么。除非您想使用 ajax 在提交时手动发送表单!那么你可以有你的路线,比如汽车/搜索/{param} 但在这种情况下,它必须是 cars/search/?search={params}

【讨论】:

  • 是的,但是你如何告诉表单,将请求转发到这个 url。 <form action="{{ URL::route('route-name') }}" method="get"> 会重定向到 car/search?inputname=value
  • 你编辑了你的答案,仍然:我不是在问我应该如何定义路线。我想知道,我怎样才能告诉表单,重定向到 restful 模式。
  • 是的,如果你等待,我只是在完成我的回答:))。
  • 我无法使用用户输入的输入打开表单。你说我应该Form::open('route' => array('route.name', $USER's SEARCH INPUT)); 它不会工作。
  • 所以,基本上,我不能做我想做的事。仅使用 ajax,但那样,url 不会改变(/car/search 包含表单,向 /car/search/xy 发送 ajax 请求,但用户的 url 将是相同的,/car/search url 和搜索后,他/她无法将其链接到其他人:()。
猜你喜欢
  • 1970-01-01
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
相关资源
最近更新 更多