2016-02-29 66 views
1

我一樣根據提供給this question 答案執導,但它並沒有爲我工作。所以我重申了這個問題。 我的控制器是laravel:重定向() - >回() - >與()不發送任何消息

public function save() { 

     $med_group = MedicineGroup::create(Request::all()); 

     if ($med_group) { 
      $this->setServerMessage('MedicineGroup created successfully'); 
      return Redirect::to('admin/user/create')->with('flashmessage',$this->getServerMessage()); 

     } 
    } 

我在Controller.php這樣

public function setServerMessage($messagearray) { 
     if (is_array($messagearray)) { 
      $type = $messagearray['type']; 
      $html = "<div style='height:auto;padding:7px 0px 6px 20px;margin:0px' class = 'pull-left text-left col-md-8 alert alert-{$type}'>{$messagearray[0]}</div>"; 
     } else { 
      $html = "<div style='height:33px;padding:7px 0px 6px 20px;margin:0px' class = 'pull-left text-left col-md-8 alert alert-info'>{$messagearray}</div>"; 
     } 
     $temp = ''; 
     if (\Session::get('SERVER_MESSAGE')) { 
      $temp = \Session::get('SERVER_MESSAGE'); 
     } 
     \Session::put('SERVER_MESSAGE', $temp . $html); 
    } 

public function getServerMessage() { 

     if (\Session::get('SERVER_MESSAGE')) { 
      $temp = \Session::get('SERVER_MESSAGE'); 
      \Session::forget('SERVER_MESSAGE'); 
      return $temp; 
     } else 
      return ""; 
    } 

取得setServerMessage()和getServerMessage()我的看法是建立這樣

<div class="box-footer text-right"> 
       @include('flash') 
       <input type="submit" class="btn btn-success" value='Save'> 
       <input type="reset" class="btn btn-primary" value='Reset' /> 
       <a href="#" class="btn btn-danger">Cancel</a> 
      </div> 

,並在我的閃光燈。 blade.php我寫的

@if(isset($flashmessage)) 
    {!! $flashmessage !!} 
@endif 

我錯過了什麼?我跟着this site too,但我不能在我看來刷新消息。

回答

0

試試這件事情,我更換整個代碼,你可以根據你的需要改變它:

public function save() 
{ 
    $med_group = MedicineGroup::create(Request::all()); 

    if ($med_group) { 
     //$this->setServerMessage('MedicineGroup created successfully'); 

     // flash method to be used when just printing the message 
     // on the screen. Link below 
     \Session::flash('key', 'Your message here...'); 

     return Redirect::to('admin/user/create'); 

    } 
} 

在您的視圖文件:

@if(Session::has('key)) 
    {{ Session::get('key') }} 
@endif 

Link for more information

+0

感謝你的努力,但它仍然是行不通的 – Saurab

0
every other thing seems to be fine except for your layout 

laravel would escape the variable you are passing into the session while using this 

@if(isset($flashmessage)) 
    **{!! $flashmessage !!}** 
@endif 

you should do this instead 

@if(isset($flashmessage)) 
    **{{ $flashmessage }}** 
@endif 
+0

都能跟得上。 。 不工作 。如果我在控制器中執行dd($ this-> getServerMessage()),我可以看到我的Flash消息,但是爲什麼我不能在flash.blade.php中打印那條消息而奇怪的是我**無法打印**它甚至在我將其重定向到的同一個Controller中的create()函數內部。 – Saurab

+0

這就是爲什麼你不會得到消息\ Session :: forget('SERVER_MESSAGE');您正在從會話中刪除消息,請閱讀https://laravel.com/docs/5.0/session中有關會話的更多信息 – osleonard

1

設置閃光消息,然後重定向到所需的路線

控制器:

session()->flash('msg', 'Successfully done the operation.'); 
    return Redirect::to('admin/user/create'); 

現在得到的消息,鑑於刀片文件

刀片

{!! Session::has('msg') ? Session::get("msg") : '' !!} 
相關問題