2017-03-07 123 views
1

我想根據函數的結果返回一個flash消息,但我真的不知道如何正確執行此操作,有人可以幫我修復此問題嗎?Laravel返回flash消息

控制器:

public function postDB(Requests\NameRequest $request) { 
    $newName = trim($request->input('newName')); 
    $newLat = $request->input('newCode'); 
    $websites = new Website(); 
    $websites->name = $newName; 
    $websites->html = $newLat; 
    $websites->save(); 
    if ($websites->save()) 
    { 
    $message = 'success'; 
    }else{ 
    $message = 'error'; 
    } 
    return redirect()->back()->withInput()->with('message', 'Profile updated!'); 
} 

請求:

public function authorize() 
    { 
     return true; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
    return [ 
     'img' => 'file|image', 
    ]; 
    } 
    public function messages() 
    { 
     return [ 
      'img.image' => 'File type is not supported! Use files with extension .jpg/.jpeg/.gif', 
     ]; 
    } 

模板:

@if (session('status')) 
@if (session('status')=="success") 
    <div class="alert alert-success"> 
     {{ session('message') }} 
    </div> 
@else 
    <div class="alert alert-error"> 
     {{ session('message') }} 
    </div> 
@endif 
@endif 

路線:

Route::group(['middleware' => ['web']], function() { 

    Route::get('home', '[email protected]'); 
    Route::get('pages', '[email protected]'); 
    Route::get('template', '[email protected]'); 
    Route::post('template2', '[email protected]'); 
    Route::post('template', '[email protected]'); 
    Route::get('logout', '[email protected]'); 
    Route::get('/website/{name}', '[email protected]'); 
}); 
+0

你面臨的問題是什麼? –

+0

問題是我沒有得到任何消息,如果它成功或沒有 – Przemek

+0

爲什麼你在測試()中有兩次相同的if語句? – Birdman

回答

1

解決方案:

這可能只有一個原因。

的laravel將通過提示信息只有當它的註冊中間件的Web

即內,

Route::group(['middleware' => ['web']], function() { 
    //The back()'s url should be registered here 
}); 

更新:

看來你需要重定向回來消息輸入

所以,你可以這樣做

if ($request->hasFile('img')) { 
    $message = 'success'; 
    } else { 
    $message = 'error'; 
} 
return redirect()->back()->withInput()->->with('message', $message); 

更新2:

@if (session('status')) 
@if (session('status')=="success") 
    <div class="alert alert-success"> 
     Congrats! Everything was fine 
    </div> 
@else 
    <div class="alert alert-error"> 
     Oops! Something went wrong 
    </div> 
@endif 
@endif 

注:您可以在狀態PARAM傳遞到您的願望

+0

再次檢查我的問題我已經上傳了路線,它仍然不起作用,是因爲2次返回? – Przemek

+0

正在更新結果。 –

+0

您可以在您的視圖 –

0

如果傳遞message快閃參數名稱,使用它,而不是status

@if (session('message')) 
@if (session('message')=="success") 
    <div class="alert alert-success"> 
     Congrats! Everything was fine 
    </div> 
@else 
    <div class="alert alert-error"> 
     Oops! Something went wrong 
    </div> 
@endif 
@endif