2016-04-30 3 views
1

Я новичок в Laravel 5.2 Я пытаюсь с помощью сеанса вспышки для отображения оповещенияфлэш-сессия не работает в Laravel 5,2

Вот код сеанса вспышки

DepartmentContoller.php

public function add(Request $request){ 

     if($request->isMethod('post')) 
     { 
      $department = new Department; 

      /*$department->department_name = $request->department_name; 
      $department->status = $request->status; 
      $department->save();*/ 

      $department->create($request->all()); 
      $request->session()->flash('alert-success', 'User was successful added!'); 
      return redirect('admin/departments'); 
     } 

     return view('admin.department.add'); 
    } 

Вот файл вид, в котором я хочу, чтобы отобразить сеанс вспышки значение

@foreach (['danger', 'warning', 'success', 'info'] as $msg) 
    {{Session::has('alert-' . $msg)}} 
    @if(Session::has('alert-' . $msg)) 
     <div class="alert alert-{{$msg}} alert-dismissible"> 
     <button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button> 
     <h4><i class="icon fa fa-ban"></i> Alert!</h4> 
     {{session('alert-'. $msg)}} 
     </div> 
    @endif 
@endforeach 

А вот мой маршрут deatail

Route::group(['middleware' => ['web']], function() { 
//Login Routes... 
Route::get('/admin', 'AdminAuth\[email protected]'); 
Route::get('/admin/login','AdminAuth\[email protected]'); 
Route::post('/admin/login','AdminAuth\[email protected]'); 
Route::get('/admin/logout','AdminAuth\[email protected]'); 

// Registration Routes... 
Route::get('admin/register', 'AdminAuth\[email protected]'); 
Route::post('admin/register', 'AdminAuth\[email protected]');  

Route::group(['as' => 'admin', 'middleware' => ['admin', 'web'], 'prefix'=>'admin'], function() { 
    Route::get('/admin', array('uses'=>'[email protected]')); 
    Route::get('/departments', array('as' => 'departments', 'uses'=>'DepartmentControll[email protected]')); 
    Route::get('/department/add', array('as' => 'add', 'uses'=>'[email protected]')); 
    Route::post('/department/add', array('as' => 'add', 'uses'=>'[email protected]')); 
}); 

});

Я хочу показать предупреждение о готовности, но я не получил значение сеанса на моей странице просмотра. Пожалуйста, предложите, где я ошибаюсь?

+0

Поскольку 'flash'is используется только для следующего запроса, вы уверены, что там не больше переназначения после' админ/departments'? Однако, я думаю, вы должны использовать '{{session ('alert-'. $ Msg)}}' вместо '{{session ('message')}}' – emibloque

+0

Да, там нет другого перенаправления, а также Я изменился с помощью '{{session ('alert-'. $ Msg)}}'. Но не повезло, это не входит в 'if (session :: has ('alert-'. $ Msg))' –

+0

Попытайтесь получить данные сеанса в контроллере, а затем передать их в представление из 'DepartmentController @ index' – emibloque

ответ

0

убедитесь, что все маршруты использует веб-промежуточного

Route::group(['middleware' => 'web'], function() { 
// routes here 
Route::get('/departments', array('as' => 'departments', 'uses'=>'[email protected]')); 
}); 
+0

Мой маршрут использует веб-промежуточное ПО –

+0

У вас есть ошибка -> RuntimeException с сообщением «Магазин сеансов, не установленный по запросу». – shalini

+0

session() -> flash ('alert-success', 'Пользователь успешно добавлен!'); return redirect() -> to ('admin/department'); – shalini

Смежные вопросы