laravel删除不起作用

I am wondering how to put a csrf token in a form so that delete will work?

Here is my code:

Route:

Route::delete('category_delete/{id}',['as'=>'category_delete','uses'=>'CategoryController@destroy']);

index.blade.php

@section('adminContent')
{!! Form::token() !!}
<div class="table-responsive art-content">
    <table class="table table-hover table-striped">
        <thead>
        <th> NAME</th>
        <th> ACTIONS</th>
        </thead>
        <tbody>
        @foreach($categoriesView as $category)
            <tr>
                <td>{!! $category->name!!}</td>
                <td>{!! link_to_route('categories.edit', '', array($category->id),array('class' => 'fa fa-pencil fa-fw')) !!}</td>
                <td><button type="button" id="delete-button" class="delete-button" data-url = "{!! url('category_delete')."/".$category->id !!}"><i class="fa fa-trash-o"></i></button>
            </td>
            </tr>
        @endforeach
        </tbody>
    </table>
    <div class="pagination"> {!! $categoriesView->render() !!}</div>
</div>

@stop

CategoryController:

 public function destroy($id,Category $category)
{

    $category = $category->find ( $id );
    $category->delete ();
    Session::flash ( 'message', 'The category was successfully deleted!.' );
    Session::flash ( 'flash_type', 'alert-success' );
}

If I used ajax, javascript or jquery, how should the code be?

Using jquery I would do something like the following.
Add the line below in the header of your home view
<meta name="csrf-token" content="{{ csrf_token() }}" />
Now in your javascript


function deleteMe(button)
   {
     // You might want to put the ajaxSetup function where it will always load globally.
     $.ajaxSetup({
         headers: {
             'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
         }
  });

   if(confirm("Are you sure?"))
   {
       $.get(
           'category_delete/'+button.id,
           function( response )
           {
               // callback is called when the delete is done.
               console.log('message = '+ response.message);
           }
       )
   }
  }

In index.blade.php, make your id more specific.
... <td><button type="button" id=".$category->id" class="delete-button" data-url = "{!! url('category_delete')."/".$category->id !!}"><i class="fa fa-trash-o" onlick="deleteMe(this);></i></button> ...

In your controller

public function destroy($id,Category $category){
     $category = $category->find ( $id );
     $category->delete ();

    return response()->json(
        'message' => 'Deleted', 
      )

}


Note: No need to add
Form::token in your view
Hope this helps.....


Updated...........

If you were to do it using laravel only, I will suggest you use a link rather than the button you are using.

In index.blade.php, make your id more specific.
... <td><a href="category_delete/".$category->id class="delete-button" data-url = "{!! url('category_delete')!!}"><i class="fa fa-trash-o"></i></td> ...
In your controller

public function destroy($id,Category $category){
    $category = $category->find ( $id );
    $category->delete ();

   return view('index');//important.

}



If you want your link to look like a button, use css or a css framework like bootstrap That should be it. hope this helps again.