【问题标题】:Laravel 4.1 - passing resource ID from form <select> to controller method?Laravel 4.1 - 将资源 ID 从表单 <select> 传递到控制器方法?
【发布时间】:2014-08-15 06:15:04
【问题描述】:

对不起,如果这是一个愚蠢的问题。我对 laravel / MVC 很陌生,今天没有喝足够的咖啡,所以如果答案就在我面前,我不会感到惊讶。 :)

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

我不知道如何将选择中的 ID 传递到表单中。当您在下拉列表中选择(例如)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 来自 &lt;select&gt;,我不确定将 ID 放入路由的正确方法是什么。

感谢您的帮助!

【问题讨论】:

    标签: php forms laravel-4


    【解决方案1】:

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

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

    【讨论】:

    • 我正在使用资源控制器,如果我没有说清楚,抱歉。 :) 我知道我可以用 jQuery 附加 ID,但我觉得这不是最佳实践,有什么方法只能由 Laravel 做到吗?感谢您的帮助。
    • 通常您使用资源控制器来处理 1 个资源(在您的情况下为 1 个用户)。每条路线(存储、创建、显示、编辑等)处理一个资源。我想说有一个选择字段来选择一个要删除的用户并没有真正遵循这种做法。通常,您有一个显示页面来显示该 1 个用户。在该页面上,您将有一个删除链接,其中包含指向销毁/删除操作的路径。
    • 我明白了——我仍然只操纵一个用户,你只需选择哪个用户;这不符合惯例吗?您是否认为在这种情况下我最好只使用普通的 POST 并编写自己的方法而不是依赖资源控制器的默认值?谢谢!
    • 这完全取决于你。您应该有一个页面,您可以在其中使用显示操作 (/resource/{resource}) 仅操纵一个用户。您应该(从表中)选择一个用户,然后它会将您带到显示页面。在该显示页面上,您将执行删除操作。据我了解,您正试图直接从选择表单中删除用户。如果你想这样做,那么我建议使用 POST
    • 是的,这本质上是一个“管理员”实用程序,他们可以在其中管理和删除其他用户。我将着手实现一个 POST 方法。感谢您的帮助!
    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 2021-12-11
    • 1970-01-01
    • 2014-12-19
    相关资源
    最近更新 更多