【问题标题】:Laravel Modal keeps on deleting the last id in the databaseLaravel Modal不断删除数据库中的最后一个id
【发布时间】:2021-06-11 05:42:11
【问题描述】:

您好,我正在尝试在我的用户表中使用 laravel 中的模式进行删除确认。 我注意到删除按钮正在工作,但删除按钮总是删除表中的最后一个条目,并且在确认中我输入了一些 <p>Are you sure you want to delete {{$row->name}}</p> 但名称总是来自最后一个条目。这是我的整个模态代码

<!-- Delete Modal -->
  <div class="modal fade" id="userDelete"  tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title" id="exampleModalLabel">Delete User</h5>
        </div>
        <div class="modal-body">
          <p>Are you sure you want to delete {{$row->name}}</p> 
        </div>
        <div class="modal-footer">
         {!!Form::open(['action' => ['UserController@destroy', $row->id], 'method' => 'POST','class'=>'pull-right'])!!}
          <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
          {{Form::submit('Delete',['class'=>'btn btn-danger'])}}
          {{Form::hidden('_method','DELETE')}}
          {!!Form::close()!!}
        </div>
      </div>
    </div>
  </div>

这是我的销毁控制器代码

public function destroy($id)
    {
        $users = User::find($id);
        if(auth()->user()->userType =="admin")
        {   
           
            $users->delete();
        }
        else
        {
        return redirect('/users')->with('error', 'Admin is only authorized to delete users');
        }
        
        return redirect('/users')->with('success', 'User Removed!');
    }

这是我的表格主体代码

@foreach ($users as $row)
     <tbody id="myTable">
         <tr>
             <td>{{$row->id}}</td>
             <td>{{$row->name}}</td>
             <td>{{$row->email}}</td>
             <td>{{$row->created_at}}</td>
             <td>{{$row->userType}}</td>
             <td><a href="" class="btn btn-success">Validate</a>
            <button class="btn btn-danger" data-toggle="modal" data- 
            target="#userDelete">Delete</button>
            </td>
         </tr>
    </tbody>
@endforeach

我该如何解决?

【问题讨论】:

  • 请出示控制器代码。
  • 我显示控制器代码。
  • 你的模态在哪里循环?如果模态代码不在循环中,则它从其他循环中获取最后一个用户ID并将其放入模态中。
  • 我应该放什么样的循环?
  • 你在哪里以及如何在你的刀片文件中包含模态?如何在模态中传递 id?

标签: php laravel-5


【解决方案1】:

你的模态总是得到最后一个id,因为,

  • 在每次按钮点击中,它总是检测到相同的模式,它采用最后一行 id。
  • 您需要为每个数据定义单独的模式,就像您在表格中为每个数据条目定义单独的行一样。
  • 然后在每次点击按钮时,检测对应的modal要删除。

重新格式化您的代码,如下所示。

在表体代码中:更新按钮数据-目标

@foreach ($users as $row)
     <tbody id="myTable">
         <tr>
             <td>{{$row->id}}</td>
             ...
             <td><a href="" class="btn btn-success">Validate</a>
                <button class="btn btn-danger" data-toggle="modal" 
                      data-target="#userDelete_{{$row->id}}">
                         Delete
                </button>
            </td>
         </tr>
    </tbody>
@endforeach

上面的 data-target="#userDelete_{{$row-&gt;id}}",现在将根据按钮点击识别不同的模态ID,例如userDelete_1userDelete_2

现在在表格后面的foreach循环内编写模态代码,如下所示:

@foreach ($users as $row)
     <tbody id="myTable>
        ...
    </tbody>

<!-- Delete Modal -->
  <div class="modal fade" id="userDelete_{{$row->id}}"  tabindex="-1"
       arialabelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title" id="exampleModalLabel">Delete User</h5>
        </div>
        <div class="modal-body">
          <p>Are you sure you want to delete {{$row->name}}</p> 
        </div>
        <div class="modal-footer">
         {!!Form::open(['action' => ['UserController@destroy', $row->id], 'method' => 'POST','class'=>'pull-right'])!!}
          <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
          {{Form::submit('Delete',['class'=>'btn btn-danger'])}}
          {{Form::hidden('_method','DELETE')}}
          {!!Form::close()!!}
        </div>
      </div>
    </div>
  </div>
@endforeach

现在,如果你的路由路径和形式没问题,我想你的问题就解决了。

【讨论】:

  • 完美!这对我有用。
猜你喜欢
  • 2012-03-09
  • 2018-01-03
  • 1970-01-01
  • 2015-12-03
  • 2017-10-06
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多