如何为 link 定义一个路由到 Laravel 4 中的 destroy() 函数?

How to define a route for a link to go to destroy() function in Laravel 4?

我在我的路由中定义了这样一个资源:

    Route::resource('shops', 'shopsController');

我需要创建一个link来删除一个项目

<a class="btn btn-xs btn-danger" href="{{ URL::to('shops/'. $row->id . '/destroy') }}" > </a>

但是这个 URL 需要我像这样定义一条新路线:

Route::get('shops/{id}/destroy', 'shopsController@destroy');

那么,我怎样才能强制URL通过默认路由,通过它的资源,来获得销毁功能?

我试过了

href="{{ route('shops.destroy', $row->id ) }}" data-method="delete" 

但我将我重定向到 show() 而不是!!!!

试试这个

 <a class="btn btn-xs btn-danger" href="{{ route('shops.destroy',array($row->id)) }}" data-method="delete" rel="nofollow" data-confirm="Are you sure you want to delete this?">Delete this entry</a>

laravel-delete

您不能通过锚标记 href attr 删除用户,您需要使用表单或使用 Ajax.

删除它
   {{ Form::open(array('url' => 'shops/'. $row->id)) }}
                    {{ Form::hidden('_method', 'DELETE') }}
                    {{ Form::submit('Delete this User', array('class' => 'btn btn-warning')) }}
                {{ Form::close() }}

这是 similar question

更新

希望对您有所帮助。

您可以像这样将 $row->id 传递给锚点 Id attr

 <a class="btn btn-xs btn-danger" id="{{$row->Id}}" onclick="delete_user(this.id) return false;" href="#" rel="nofollow" >Delete this entry</a>

然后使用下面的脚本来处理 Destory 方法。

function delete_user(Id) {
var result = confirm("Want to delete?");
if (result==true) {
        $.ajax({
            url:'http://localhost:81/laravel/myapps/public/shops/'+Id,
            type:"Post",
            data: {'_method':'delete'},
            success:function($msg){
                alert($msg);
            }
        });
    }
    }
</script>