如何解决在资源控制器中调用destroy方法
当我在laravel中使用资源控制器时,我无法理解如何调用destroy方法。 delete.blade.php
@extends('main')
@section('content')
<form method="POST" action="{{route('posts.destroy','$post->id') }}" >
@method('DELETE')
@csrf
<select name="id">
<option value="1">vddv</option>
<option value="2">miss</option>
<option value="3">miss</option>
<option value="4">joy</option>
</select>
<br><br>
<button type="submit"> Delete blog</button>
</form>
@endsection
资源控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\posts;
use Sessions;
class PostController extends Controller
{
public function create()
{
return view('posts.create');
}
public function store(Request $request)
{
$post = new posts;
$post->title = $request->input('title');
$post->body = $request->input('body');
$post->save();
return redirect('posts/read');
}
public function show($data)
{
echo "show";
}
public function edit($id)
{
return view('posts.edit');
}
public function update(Request $req,$id)
{
echo posts::where('title',$req->title)
->update(['body'=>$req->body]);
return redirect('/');
}
public function destroy($id)
{
$post = posts::find($id);
$post->delete();
return redirect('/');
}
}
路线:
Route::resource('posts','PostController');
在传递GET请求时正在调用show方法。请指导我如何调用destroy方法。如文档中所述,我通过表单方法欺骗传递@method('DELETE'),因为html仅识别GET和POST方法。
解决方法
您可以使用以下代码。我希望它能起作用。
<form method="POST" action="{{ url('/posts' . '/' .$post->id) }}">
{{ method_field('DELETE') }}
{{ csrf_field() }}
<select name="id">
<option value="1">vddv</option>
<option value="2">miss</option>
<option value="3">miss</option>
<option value="4">joy</option>
</select>
<button type="submit" title="Delete Post">Delete</button>
</form>
// In Controller
public function destroy($id) {
Post::destroy($id);
return redirect('posts')->with('flash_message','Post deleted!');
}
,
Hello,Brother please try this i hope it will work.
{!! Form::open(['method'=>'DELETE','url' =>route('posts.destroy',$post->id),'style' => 'display:inline']) !!}
{!! Form::button('<i class="ft-trash"></i>delete',array('type' => 'submit','class' => 'btn btn-defult','title' => 'Delete Post','onclick'=>'return confirm("Confirm delete?")')) !!}
{!! Form::close() !!}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。