如何通过删除方法从数据库中删除帖子的ID [关闭]

Posted

技术标签:

【中文标题】如何通过删除方法从数据库中删除帖子的ID [关闭]【英文标题】:How to delete the id of post from database by delete method [closed] 【发布时间】:2022-01-22 09:35:43 【问题描述】:

此代码正在删除我的帖子,但新帖子正在新 id 上创建(即我们从 id 2 中删除帖子,新帖子将使用 id 3 发布,但 id 未删除)

public function delete( $id)
$post = Post::find($id);
$post::where('id', $id)->first()->delete();
// $post->destroy($id);
return redirect('home/faqs');

控制器

Route::get('/post/delete/id','PostController@delete')->name('post.delete');

链接

 <a href=" route('post.delete', $post->id) " class="btn btn-Danger">Delete</a>

【问题讨论】:

这是设计使然。在处理大型数据库时,您不希望在删除时重新编号表以及所有众多子表和相关表,因为它会破坏关系。我不知道有任何数据库会在删除时重置行迭代器。 这能回答你的问题吗? how to reuse deleted primary keys in mysql? 【参考方案1】:

这是正确的。删除行时,数据库不会重置主键增量,因为这不是标准数据库的工作方式。

从逻辑上讲,您可以轻松删除 id: 3,然后将自动增量设置回 3,但是如果您有 10 个帖子,而您删除了第 4 个呢?

如果在这种情况下将增量 id 设置回 4,您将能够创建一行,然后遇到重复主键的问题,这只能通过手动设置来解决自动递增到 10 以上。

【讨论】:

【参考方案2】:

您好,您可以这样做。

html

<a onclick="$('#delete_ $single->id ').submit()" class="btn btn-Danger">Delete</a><form id="delete_ $single->id " action=" route('post.destroy', $single->id) " method="POST">
@csrf
<input type="hidden" name="_method" value="DELETE">

控制器

public function destroy($id)

    Post::find($id)->delete();
    return redirect('home/faqs')->with(['success'=>'PostDeleted Successfully']);

【讨论】:

请在您的答案中添加一些解释,以便其他人可以从中学习。您的代码如何允许重复使用已删除的 ID?

以上是关于如何通过删除方法从数据库中删除帖子的ID [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

CakePHP:删除行后如何使自动增量值再次连续

当对象位于对象数组中时如何从状态中删除对象

从R中的数据表中删除一行[关闭]

如何从 Spring Boot 中的 JSON 数组中删除元素? [关闭]

WooCommerce:从 CSV 文件中删除带有 id 列表的产品 [关闭]

从mp3获取没有元数据(ID3)的数据的方法[关闭]