我有一个简单的页面,允许我删除书签。例如,我有一个名为bookmarks的表,其中包含user_id和car_id。它还有一个删除按钮,按下该按钮时,从DB中删除指定的行。
一切都在后端工作,但有一些奇怪的行为,因为我需要刷新第一个和最后一个操作的页面删除从页面中消失。其余的工作正常。
routes.php文件
// bookmarks
Route::any('bookmarks/del/{cid}', [
'as' => 'bookmark_profile_path',
'uses' => 'BookmarkController@del_bookmark'
]);
控制器
public function del_bookmark($cid)
{
$query = DB::table('bookmarkz')->where('user_id', Auth::User()->user_id)->get();
$rows = $query;
foreach ($rows as $row) {
if($row->car_id == $cid)
{
DB::table('bookmarkz')->where('car_id', '=', $cid)->delete();
echo "Bookmark Removed";
}
}
return View::make('user/bookmarks')->with('query',$query);
}
查看
@extends('...layout.layout')
@section('content')
<h2>Bookmarks!</h2>
<p>Your user ID is: {{ Auth::user()->user_id }}</p>
@foreach ($query as $query_i)
<table><tr>
<td>{{$query_i->car_id}} </td>
<td>
{{HTML::linkRoute('bookmark_profile_path', "Remove Bookmark", array($query_i->car_id))}}
</td>
</tr></table>
@endforeach
<div>
{{ HTML::linkRoute('profile', 'Back to Profile') }}
<br>
</div>
@stop
以下是按删除书签 10018时会发生的情况 在数据库中,删除了10018 IS,还删除了#34;删除了书签&#34;输出,但它仍然显示在屏幕上。如果我刷新页面,它就会消失。
接下来,我点击10019的删除书签。结果如下。 执行此操作后,10018将从视图中删除,但10019仍在屏幕上。总而言之,在刷新页面之前,视图不会调整我的更改。任何人都可以帮助我吗?
答案 0 :(得分:0)
在您的控制器中,SELECT查询在DELETE查询之前执行,因此其结果包括随后删除的书签。