2016-07-21 5 views
1

Привет Я пытаюсь сделать следующее в Laravel 5.2.Передача переменной из промежуточного программного обеспечения для просмотра через контроллер в Laravel 5.2

Резюме: Проходят некоторые переменные из промежуточного программного обеспечения для просмотра, с помощью контроллера

Подробно: Когда клиент вошел в систему, независимо от того, какой путь они хотят, мы должны проверить, если они выполнили все «шаги по установке» (каждый шаг относится к другому маршруту, например, может быть информация о компании, другой может быть настройкой продукта и т. д.). Если они завершили все шаги настройки, то пусть они перейдут к выбранному маршруту, иначе мы перенаправляем на соответствующий маршрут «шагов настройки», в зависимости от того, что они еще не завершили.

Все клиентские контроллеры используют одно и то же промежуточное ПО, называемое NonSuperAdmin. Я хотел бы поместить проверку «шагов настройки» в этом промежуточном программном обеспечении и перенаправить оттуда по мере необходимости. Если клиент перенаправляется на маршрут настройки этим промежуточным программным обеспечением, нам необходимо, чтобы сборка «incompleteSetupTasks» передавалась соответствующему представлению с помощью соответствующего метода контроллера шагов установки.

Возможно ли это? Буду признателен за любую оказанную помощь.

+0

Вы можете возвращать перенаправления внутри промежуточного программного обеспечения, которое будет очень полезно для ваших контроллеров, сохраняя всю эту логику вне их и содержащуюся внутри вашего промежуточного программного обеспечения. – user3158900

ответ

1

При использовании промежуточного сеанса обработчика

if($condition === true){ 
    $data = [ //your content ]; 
    Session::flash('your_key', $data); 
} 
next($request); 

Эти данные также будут доступны в вашем контроллере и с учетом

Это, как вы можете получить доступ к данным в контроллере

public function yourControllerAction($request) 
{ 
    $somevariable = Session::get('your_key'); 
    $viewdata = [ 
     'content' => $somevariable 
    ] 
    return view('yourview', $viewdata); 
} 

Или непосредственно получить доступ к данным сеанса в поле зрения

//inblade 
<p> 
    Your html content 
    @foreach(Session::get('your_key' as $data) 
    //your stuff 
    @endif 
</p> 
1

Может использоваться Laravel Session для хранения и считывания значений?

+0

Я пробовал это и провалился. Возможно, я не делаю это правильно. Будете ли вы любезны, чтобы дать мне базовый пример? –

+0

Я даю вам ссылку в своем ответе на документацию - есть примеры. Но здесь может быть введен ваш код, и я буду смотреть на него. Я никогда не использую сеанс в миддловеде, поэтому я не уверен на 100%, что мой совет по защите прав прав - вы должны проверить его самостоятельно. –

+0

здесь у вас есть хороший видео-учебник: https://laracasts.com/series/laravel-5-from-scratch/episodes/15, –

0

Вы можете передать свои шаги настройки, чтобы получить или отправлять параметры и проверить в маршрутах с ПО промежуточного слоя, если эти параметры являются пустыми:

Route::get('post/{setup1?}/{setup2?}', ['middleware' => 'role:admin', function ($setup1, $setup2) { 
    if(empty($setup1) and empty($setup2)){ 
     // do smth 
    } else { 
     // redirect 
    } 
}]); 

вопросительные знаки означают, что они являются необязательными параметрами. Надеюсь, это было полезно.

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

  • Нет связанных вопросов^_^