2014-02-08 48 views
12

我的應用程序是一個簡單的CRUD應用程序。我有一個刪除控制器操作,當該項目被成功刪除時,它將重定向回列表。我現在試圖添加的是向用戶發送的消息,即數據已成功刪除。Laravel重定向數據不起作用

我的控制器操作:

public function deleteItem($id) 
{ 
    try { 
     $item = Item::findOrFail($id); 
     $item->delete(); 
     return Redirect::to('list')->with('message', 'Successfully deleted'); 
    } catch (ModelNotFoundException $e) { 
     return View::make('errors.missing'); 
    } 
} 

我list.blade.php視圖的一部分,我嘗試顯示消息:

@if (isset($message)) 
    <div class="alert alert-success alert-dismissable"> 
     <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> 
     {{ $message }} 
    </div> 
@endif 

的問題,我有是,$message變量總是空的。

回答

15

由於with方法會將數據閃爍到會話中,因此可以使用典型的Session::get方法檢索數據。

所以,你必須得到儘可能

$message = Session::get('message'); 
5

您可以使用此對您的刀片模板:

@if(Session::has('message')) 
    <div class="alert alert-success alert-dismissable"> 
     <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> 
     {{ Session::get('message') }} 
    </div> 
@endif 

參考: easylaravelblog

0

請檢查APP/kernel.php

\Illuminate\Session\Middleware\StartSession::class, 

是定義多次

protected $middleware = [ 
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, 
\Illuminate\Session\Middleware\StartSession::class, 
]; 

protected $middlewareGroups = [ 
'web' => [ 
    \App\Http\Middleware\EncryptCookies::class, 
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
    \Illuminate\Session\Middleware\StartSession::class, 
    \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
    \App\Http\Middleware\VerifyCsrfToken::class, 
    \Illuminate\Routing\Middleware\SubstituteBindings::class, 
], 

您可以發表評論的任何一個或刪除。我們只需要定義一次。