简体   繁体   English

Laravel从表列表/ db中删除项目

[英]Laravel delete item from table list / db

I am trying to delete item from a generated table of items which are from a database table. 我试图从生成的数据库表项目表中删除项目。

My Route: 我的路线:

Route::delete('destroy/{deviceID}', ['as' => 'destroyDevice', 'uses' => 'DeviceController@destroyDevice']);

My Controller method to delete an item: 我的Controller方法删除项目:

public function destroyDevice(Request $request, $deviceId = 0)
{
    $device = Device::find($deviceId);

    if($device)
    {
        $device->delete();
        return redirect()->route('index')->with('success', 'Erfolgreich gelöscht');
    }
    else
    {
        return redirect()->route('index')->with('error', 'Fehler');
    }
}

And my blade template: 我的刀片模板:

                <form action="{{ route('destroyDevice', $deviceValue->id) }}" method="post" name="delete_device">
                    <input type="hidden" name="_method" value="delete">
                    <input type="hidden" name="_token" value="{{ csrf_token() }}">
                    <input type="hidden" name="id" value="{{ $deviceValue->id }}">
                    <td>
                        <button type="submit" class="btn btn-danger" name="destroy_device">
                            <span class="glyphicon glyphicon-trash"></span>
                        </button>
                    </td>
                </form>

If I click on the button nothing happens no error no Response, what am I doing wrong. 如果我点击按钮没有任何反应没有错误没有响应,我做错了什么。

If I click on the third delete button the form holds this: 如果我点击第三个删除按钮,表单会保存:

<form action="http://localhost/app/public/device/destroy/3" method="post" name="delete_device"></form>

You can solve this by putting the form inside a td tag in that table. 您可以通过将表单放在该表中的td标记内来解决此问题。

Like this: 像这样:

  <td> <!--  <--- put these -->
      <form action="{{ route('destroyDevice', $deviceValue->id) }}" method="post" name="delete_device">
          <input type="hidden" name="_method" value="delete">
          <input type="hidden" name="_token" value="{{ csrf_token() }}">
          <input type="hidden" name="id" value="{{ $deviceValue->id }}">

              <button type="submit" class="btn btn-danger" name="destroy_device">
                  <span class="glyphicon glyphicon-trash"></span>
              </button>

      </form>
  </td> <!--  <--- put these -->

I think the form gets ignored somehow due to not being valid, but I am not 100% sure. 由于无效,我认为表单会被忽略,但我不是100%肯定。 May people edit this answer ;) 愿人们编辑这个答案;)

该参数区分大小写,因此它应该是deviceID而不是deviceId

public function destroyDevice(Request $request, $deviceID = 0)

Maybe you have some script that prevents the form to submit, some prevent default maybe on button click or on form submit. 也许你有一些脚本阻止表单提交,有些可能会在按钮点击或表单提交时阻止默认。 Check that. 检查一下。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM