删除查询需要刷新

时间:2014-12-04 01:43:17

标签: laravel laravel-4

我有一个简单的页面,允许我删除书签。例如,我有一个名为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时会发生的情况 enter image description here 在数据库中,删除了10018 IS,还删除了#34;删除了书签&#34;输出,但它仍然显示在屏幕上。如果我刷新页面,它就会消失。

接下来,我点击10019的删除书签。结果如下。 enter image description here 执行此操作后,10018将从视图中删除,但10019仍在屏幕上。总而言之,在刷新页面之前,视图不会调整我的更改。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

在您的控制器中,SELECT查询在DELETE查询之前执行,因此其结果包括随后删除的书签。