2017-03-23 22 views
1

私はLaraveのフレームワークプログラムで、CRUDSメソッドDELETEによる削除に問題があります。CRUD route :: deleteメソッド(Laravel 5.3)でレコードを削除しようとしています

マイルート方法は次のとおりです。

Route::delete('cats/{cat}/delete', function(Furbook\Cat $cat){ 
$cat->delete(); return redirect('cats.index')  
->withSuccess('Cat 
has been deleted.'); }); 

削除URLをマイビュー:

@extends('layouts.master') 

@section('header') 
<a href="{{ url('/') }}">Back to the overview</a> 
<h2> 
    {{ $cat->name }} 

</h2> 
<a href="{{ url('cats/'.$cat->id.'/edit') }}"> 
    <span class = "glyphicon glyphicon-edit"></span> 
    Edit  
</a> 
<a href ="{{ url('cats/'.$cat->id.'/delete') }}"> 
    <span class ="glyphicon glyphicon-trash"></span> 
    Delete 
</a> 
<p>Last edited: {{ $cat->updated_at }}</p> 
@endsection 

@section('content') 
<p>Date of Birth: {{ $cat->date_of_birth }} </p> 
<p> 
    @if ($cat->breed) 
    Breed: 
    {{ url('cats/breeds/'.$cat->breed->name) }} 
    @endif 

</p> 
@endsection 

私の猫モデル:

<?php 

namespace Furbook; 

use Illuminate\Database\Eloquent\Model; 

class Cat extends Model { 
    // We specified the fields that are fillable in the Cat model beforehand 
    protected $fillable = ['name','date_of_birth','breed_id']; 
    // informacja o tym, żeby nie uaktualniać update_at w tabeli kotów 
    public $timestamps = false; 
    public function breed(){ 

     return $this->belongsTo('Furbook\Breed'); 
    } 
} 
?> 

私はそこに、削除リンクをクリックしています次のようなエラーです:

RouteCollection.phpのMethodNotAllowedHttpException 233:

何が問題なのかよくわかりません。あなたは問題を解決するのに私を助けてくれますか?

誰かがこの問題を助けてくれますか? 私は非常に感謝して、挨拶します。

+1

'あなたが存在するが、使用しているリクエストメソッドをリッスンしないルートにアクセスするとMethodNotAllowedHttpException'が放出されます。つまり、 'GET'リクエストを介して' delete'ルートにアクセスしています。 – apokryfos

答えて

2

Route::delete()を使用すると、アンカーに配置することはできません。 DELETEメソッドでフォームを作成します。

{!! Form::model($cat, ['method' => 'DELETE', 'url' => 'cats/'.$cat->id.'/delete']) !!} 
    <button type="submit">Delete</a> 
{!! Form::close() !!} 
3

これは、作成しているリクエストと関係があります。あなたは{{csrf_fieldを追加するために取得しないために、フォームのルートを移動した場合(

Route::get('cats/{cat}/delete', function(Furbook\Cat $cat){ 
    $cat->delete();  
    return redirect('cats.index')->withSuccess('Cat has been deleted.');  
}); 

を取得するので、

<form action="{{ url('cats/'.$cat->id.'/delete') }}" method="DELETE"> 
    <button class ="glyphicon glyphicon-trash">Delete</button> 
</form> 

のようにdeleteメソッドでフォームを作成するか、あなたのルートを変更する必要があります)}}

https://laravel.com/docs/5.4/csrf

関連する問題