2017-03-07 65 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