【发布时间】:2015-01-07 07:25:19
【问题描述】:
我有一个罕见的问题,我正在使用 Laravel 4 和 php,我在 jQuery datatable 中有一个 "Delete" 按钮,我正在删除注册表,当我按下按钮时(在除第一个数据之外的任何其他数据中)调用tipos.destoy 方法并且工作正常!但是当我按下第一个 Delete 按钮时,它会抛出异常:
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException.
路线:
Route::resource('tipos', 'TiposController');
控制器:
public function destroy($id)
{
$this->tipo->find($id)->delete();
return Redirect::route('tipos.index');
}
型号:
protected $guarded = array();
protected $table = 'tipos';
protected $fillable = array('clave_tipo', 'nombre_tipo', 'created_by', 'updated_by');
public static $rules = array(
'clave_tipo' => 'required',
'nombre_tipo' => 'required',
'created_by' => 'required',
'updated_by' => 'required'
);
查看:
@foreach($tipos as $tipo)
<tr>
<td>{{{ $tipo->clave_tipo }}}</td>
<td>{{{ $tipo->nombre_tipo }}}</td>
<td>{{ link_to_route('tipos.edit', 'EDITAR', array($tipo->id), array('class' => 'btn btn-success')) }}</td>
<td>
{{ Form::open(array('method' => 'DELETE', 'route' => array('tipos.destroy', $tipo->id))) }}
{{ Form::submit('Delete', array('class' => 'btn btn-danger')) }}
{{ Form::close() }}
</td>
</tr>
@endforeach
我不知道为什么它对所有其他按钮都能正常工作,但只有 第一个 按钮会引发异常。 任何帮助将不胜感激。
【问题讨论】:
-
当您在 Form::open() 中指定路由时,您不必设置 http 方法。
-
对不起,我不明白,请你说的更具体些。
-
只是为了澄清您的问题,您的具体问题是当您单击上方表单中的
btn-danger元素时,Laravel 会抛出MethodNotAllowed异常? -
是的,只有在 btn btn-danger 中,我有一个数据表,所以我有很多删除按钮,但只有当我按下第一个(删除)按钮时,才会抛出异常,当我按下任何其他删除按钮(第一个除外)都可以正常工作,并且数据表会删除寄存器。
-
我看不出您的表单有任何明显错误,但我会提到,如果您 1) 检查表单的渲染 html 输出以确保它与您的匹配,它可能会帮助您调试它会期望,并且 2) 验证 URL after 单击删除按钮之一是否符合您的预期。其中一个很可能以某种方式关闭
标签: php jquery symfony laravel datatable