对不起,如果这是一个愚蠢的问题。我对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用于路由的正确方法是什么。
感谢您的帮助!
答案 0 :(得分:2)
如果您正在使用资源控制器,您必须使用DELETE
动词删除记录,那么我将使用jQuery将表单URL /操作更新为'url'=>'/clients/{id}'
,如您所述。 />
基本上,在表单提交(使用jQuery $('form').submit()
)上,您可以将选择字段中的ID附加到表单url / action。
如果您没有使用资源控制器,我会使用POST
方法,使用Input::all()
或Input::get()
从选择中获取ID,然后进行数据库调用从数据库中删除记录。