使用id按钮laravel 5.6从数据库中删除一行?

问题描述 投票:0回答:3

我有一个数据库表,包含2个组件,id和body,正文是一个文本,正如我在laravel数据库迁移中指定的那样:

$table->increments('id');
$table->text('body');

我用我的终端php artisan make:controller todoController --resource创建了一个文件控制器todocontroller --resource以及下面的命令,我有很多功能:它们之间3与id有关系:

public function show($id)
    {
      return $id ;
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
      DB::table('todos')->where('id', '=', $id)->delete();
   return view('pages.home');;
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }

我想从Home.blade.php中创建它的简单点击按钮删除我喜欢的行:

<ul class="list-group">
    @foreach($todos as $todo)
  <li class="list-group-item d-flex justify-content-between align-items-center">
  <form action="" method="">
  <button type="button" class="btn btn-success" >{{$todo->id}}</button>
</form>
  </li>
    @endforeach
</ul>

我试图使用php artisan route:list从终端获得很多次根,但它不起作用。

php html laravel
3个回答
0
投票

要在资源路径中删除,您可以编写新路由

Route::get('/todo/delete/{id},'todoController@destroy')->name('todo.destroy');


<ul class="list-group">
@foreach($todos as $todo)
  <li class="list-group-item d-flex justify-content-between align- 
 items-center">
  <form action="" method="">


  <a href="{{route('todo.destroy',$todo->id)}}"><button type="button" class="btn btn-success" >Delete</button></a
 </form>
  </li>
@endforeach

public function destroy($id)
{

}

0
投票

在你的控制器中:

public function destroy($id)
{
    $todo= Todo::find($id);
    $todo->delete();
    return redirect()->route('homepage');
}

在视图中:

@foreach(...)
    {!! Form::open(['route' => ['todos.destroy', $todo->id], 'method' => 'DELETE']) !!}
    {!! Form::submit('DELETE') !!}
    {!! Form::close() !!}
@endforeach

0
投票

在laravel 5.6中这很简单,只需使用下面的代码在行的id上删除数据库的一行:

1-首先在web.php中定义控制器删​​除方法的名称,我们需要以刀片形式调用

Route::delete('todos/{todo}', 'TodoController@destroy')->name('todos.delete');

2-在刀片文件中只需创建如下所示的表单(只需将其替换为foreach循环中的表单)

<form method="post" action={{ route('todos.delete') , ['id' => $todo->id] }}> {!! csrf_field() !!} <input type="hidden" value="DELETE"/> <button type="submit">click to delete this row base on id</button>

3-和你的控制器的破坏方法的最后一个

$todo = Todo::whereId($id); $todo->delete(); return back();

希望能为你的朋友工作:)

© www.soinside.com 2019 - 2024. All rights reserved.