资源路由调用错误的方法
Resource route call to wrong method
我用“资源”创建了路线。当我尝试使用删除方法时,它总是会显示方法。
- 路线列表
路由调用
<a class="btn btn-danger" href="{{ route('languages.destroy', ['language' => $language->id]) }}">Delete</a>
删除方法
public function destroy($language){
$lang = Language::findOrFail($language);
$lang->delete();
session()->flash('flash_message', 'The language has been
removed!');
return redirect(route('languages.index'));
}
那么如何解决呢?
谢谢!
因为它转到 GET 方法,因为您没有使用表单删除。
route('languages.destroy',['language' => $language->id])
上面的路由只生成 url 。所以如果你使用
<a href="{{route('languages.destroy',['language' => $language->id])}}">delete</a>
然后它被视为得到method.So你必须使用
<form method="POST" action="{{ route('languages.destroy',['language' => $language->id]) }}">
@csrf
@method("delete")
<button type="submit">Delete</button>
</form>
在你的blade中:
<form action="{{ route('languages.destroy',$language->id) }}" method="POST">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-danger">Delete</button>
</form>
我用“资源”创建了路线。当我尝试使用删除方法时,它总是会显示方法。
- 路线列表
路由调用
<a class="btn btn-danger" href="{{ route('languages.destroy', ['language' => $language->id]) }}">Delete</a>
删除方法
public function destroy($language){ $lang = Language::findOrFail($language); $lang->delete(); session()->flash('flash_message', 'The language has been removed!'); return redirect(route('languages.index')); }
那么如何解决呢? 谢谢!
因为它转到 GET 方法,因为您没有使用表单删除。
route('languages.destroy',['language' => $language->id])
上面的路由只生成 url 。所以如果你使用
<a href="{{route('languages.destroy',['language' => $language->id])}}">delete</a>
然后它被视为得到method.So你必须使用
<form method="POST" action="{{ route('languages.destroy',['language' => $language->id]) }}">
@csrf
@method("delete")
<button type="submit">Delete</button>
</form>
在你的blade中:
<form action="{{ route('languages.destroy',$language->id) }}" method="POST">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-danger">Delete</button>
</form>