Laravel 4.1 - 将资源ID从表单<select>传递给控制器​​方法?</select>

时间:2014-06-24 20:40:40

标签: php forms laravel-4

对不起,如果这是一个愚蠢的问题。我对laravel / MVC很新,而且今天咖啡还不够,所以如果答案就在我面前,我也不会感到惊讶。 :)

背景:我有一个带有选择的表单。该表单用于从数据库中删除“用户”及其所有相关资源。 <select>填充了唯一ID。在表单提交上,我想向我的Controller类发送DELETE请求,传入所选ID以进行删除。

我无法弄清楚如何将ID从select传入表单。如何在下拉列表中选择(例如)ID 1时将其传递到表单上的资源路由中?

以下是一些代码:

{{ Form::open(array(
  'url'   =>'/clients',
  'method'=>'delete',
  'name'  =>'delClient',
  'role'  =>'form',
  'class' =>'form-horizontal')) }}

<h4>Please select the client you would like to delete:</h4>

  {{ 
    Form::selectField('delClientSelect', 'Client: ', array(
      0=>'-- Select Client --')+$clientsList) 
  }}

   {{ 
      Form::submit('Delete Selected', array(
        'class'    => 'btn btn-danger confDelClient',
        'data-role'=> 'delete'
      )) 
    }}    
{{ Form::close() }}

我在网上看到的所有内容都说你将id传递给Form 'url'属性,即:

{{
 Form::open(array('url'=>'/clients/{id}'))
}}

但是,由于ID来自<select>,我不确定将ID用于路由的正确方法是什么。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

如果您正在使用资源控制器,您必须使用DELETE动词删除记录,那么我将使用jQuery将表单URL /操作更新为'url'=>'/clients/{id}',如您所述。 /> 基本上,在表单提交(使用jQuery $('form').submit())上,您可以将选择字段中的ID附加到表单url / action。

如果您没有使用资源控制器,我会使用POST方法,使用Input::all()Input::get()从选择中获取ID,然后进行数据库调用从数据库中删除记录。