如何处理我的数据库ID,当我输入ID数据以继续已删除的数据。

huangapple go评论121阅读模式
英文:

How do I deal with my database id when I enter the id data to continue the data that has been deleted

问题

这是我的控制器代码:

  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\User;
  4. use App\Models\Datakaryawan;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\DB;
  7. use Illuminate\Support\Facades\Auth;
  8. use Illuminate\Support\Facades\Session;
  9. class DatakaryawanController extends Controller
  10. {
  11. public function index()
  12. {
  13. $data = Datakaryawan::paginate(4);
  14. return view('data-karyawan', ['data' => $data]);
  15. }
  16. public function create()
  17. {
  18. $data = Datakaryawan::all();
  19. return view('data-karyawan-add', ['data' => $data]);
  20. }
  21. public function store(Request $request)
  22. {
  23. $data = Datakaryawan::create($request->all());
  24. if ($data) {
  25. Session::flash('status', 'success');
  26. Session::flash('message', 'Berhasil menambah data karyawan');
  27. }
  28. return redirect('data-karyawan');
  29. }
  30. public function edit(Request $request, $id)
  31. {
  32. $id = Datakaryawan::findorfail($id);
  33. return view('data-karyawan-edit', ['id' => $id]);
  34. }
  35. public function update(Request $request, $id)
  36. {
  37. $id = Datakaryawan::findorfail($id);
  38. $id->update($request->all());
  39. return redirect('/data-karyawan');
  40. }
  41. public function destroy($id)
  42. {
  43. Datakaryawan::where('id', $id)->delete();
  44. return redirect()->to('/data-karyawan')->with('success', 'Berhasil menghapus data karyawan');
  45. }
  46. }

这是默认视图:

如何处理我的数据库ID,当我输入ID数据以继续已删除的数据。

当我删除它时,ID 是 1,ID 2 不会变成 ID 1,而仍然是 ID 2:

如何处理我的数据库ID,当我输入ID数据以继续已删除的数据。

之后,我添加了新数据,ID 会跟随现有表格:

如何处理我的数据库ID,当我输入ID数据以继续已删除的数据。

英文:

This is my controller code

  1. &lt;?php
  2. namespace App\Http\Controllers;
  3. use App\Models\User;
  4. use App\Models\Datakaryawan;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\DB;
  7. use Illuminate\Support\Facades\Auth;
  8. use Illuminate\Support\Facades\Session;
  9. class DatakaryawanController extends Controller
  10. {
  11. public function index()
  12. {
  13. $data = Datakaryawan::paginate(4);
  14. return view(&#39;data-karyawan&#39;, [&#39;data&#39; =&gt; $data]);
  15. }
  16. public function create()
  17. {
  18. $data = Datakaryawan::all();
  19. return view(&#39;data-karyawan-add&#39;, [&#39;data&#39; =&gt; $data]);
  20. }
  21. public function store(Request $request)
  22. {
  23. $data = Datakaryawan::create($request-&gt;all());
  24. if ($data) {
  25. Session::flash(&#39;status&#39;, &#39;success&#39;);
  26. Session::flash(&#39;message&#39;, &#39;Berhasil menambah data karyawan&#39;);
  27. }
  28. return redirect(&#39;data-karyawan&#39;);
  29. }
  30. public function edit(Request $request, $id)
  31. {
  32. $id = Datakaryawan::findorfail($id);
  33. return view(&#39;data-karyawan-edit&#39;, [&#39;id&#39; =&gt; $id]);
  34. }
  35. public function update(Request $request, $id)
  36. {
  37. $id = Datakaryawan::findorfail($id);
  38. $id-&gt;update($request-&gt;all());
  39. return redirect(&#39;/data-karyawan&#39;);
  40. }
  41. public function destroy($id)
  42. {
  43. Datakaryawan::where(&#39;id&#39;, $id)-&gt;delete();
  44. return redirect()-&gt;to(&#39;/data-karyawan&#39;)-&gt;with(&#39;success&#39;, &#39;Berhasil menghapus data karyawan&#39;);
  45. }
  46. }

This is the default view

enter image description here

When I delete it, the id is 1, the id 2 doesn't become id 1, but it stays id 2

enter image description here

After that I added new data, and the id instead follows the existing table

enter image description here

答案1

得分: 1

这是数据库的行为方式。
我猜你有一个包含foreach循环的刀片文件,在其中你获取特定项,然后调用类似$item->id的东西。只需将其更改为$loop->index,你应该可以获得你想要的行为。

当你请求删除/更新行的数据时,请不要使用$loop->index,而是使用实际的ID,你可以将ID添加到数据属性中,例如:

  1. <div class="row" data-id="{{$item->id}}"...
英文:

This is how the database behaves.
I guess you have a blade file with a foreach loop where you get the specific item and then you call something like $item-&gt;id. Just change that to $loop-&gt;index and you should get the behaviour you want.

when you request delete/update the data of a row don't use this $loop-&gt;index but use the actual id, you can just add the id in a data attribute like for example:

  1. &lt;div class&quot;row&quot; data-id=&quot;{{$item-&gt;id}}&quot;...

huangapple
  • 本文由 发表于 2023年8月10日 21:00:46
  • 转载请务必保留本文链接:https://go.coder-hub.com/76875968.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定