为什么不在Laravel 5.2中使用删除按钮

时间:2016-11-16 12:46:21

标签: php laravel-5

我要删除My laravel app中的文件。但删除按钮不起作用。 (未删除)没有任何错误blade.php

//delete button here
                            <button class="btn btn-danger delete pull-right"
                            data-action="/projects/{{ $project->id }}/files/{{ $file->id }}"
                            data-token="{{csrf_token()}}">
                            <i class="fa fa-trash-o"></i>Delete
                            </button>

控制器

public function deleteOneProjectFile($fileUrl, $id)
    {
        DB::table('files')
            ->where('file_url', $fileUrl)
            ->where('project_id', $id)
            ->delete();

        return redirect()->route('projects.show')->with('info', 'File deleted successfully');
    }

路由

Route::delete('projects/{projects}/files/{files}',[
'uses' => 'FilesController@deleteOneProjectFile',
    ]);

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

根据我的说法,你并没有要求服务器作为删除请求,这就是为什么它不起作用,你可以使用Laravel的方法实现这个目的:

您的路线文件应该是:

Route::delete('projects/{projects}/files/{files}', 'FilesController@deleteOneProjectFile')->name('delete_route');

,您的HTML应该是:

<form action="{{ route('delete_route', ['project_id' => $project_id, 'file_id' => $file_id]) }}" method="POST">
    {{ csrf_token() }}
    {{ method_field('DELETE') }}

    ......

    <button type="submit">
        <i class="fa fa-trash-o"></i>Delete
    </button>
</form>

希望这有帮助!