2016-09-12 2 views
0

Я пытаюсь добавить выход на каждую из моих страниц при отправке запроса POST. В настоящее время мой код работает, но я должен определить его для каждого маршрута. Есть ли способ, которым я могу иметь $app->post() в файле основных маршрутов, который будет влиять на каждую страницу моего сайта?Slim 3 сообщение для каждой страницы только с одной функцией

К примеру, на моей странице администратора я должен добавить этот код только, чтобы получить мой выход из работы:

$app->post('/admin', function ($request, $response) { 
    // Define POST data 
    $params = $request->getParams(); 

    // Logout User 
    if ($params['logout']) { 
     // Logout 
     User::logout(); 

     // Redirect to login page 
     return $response->withHeader("Location", "/"); 
    } 
}); 

Есть ли способ, я могу добавить это в один файл и любой другой странице, такие как site.com/admin и site.com/panel смогут получить к нему доступ?

спасибо

ответ

0

Я решил использовать его с помощью промежуточного программного обеспечения.

// Middleware to logout 
$app->add(function ($request, $response, $next) { 
    // Define POST data 
    $params = $request->getParams(); 

    // Logout User 
    if ($params['logout']) { 
     // Logout 
     User::logout(); 

     // Redirect to login page 
     return $response->withHeader("Location", "/"); 
    } 

    // Return next middleware 
    return $next($request, $response); 
}); 
+0

На этот раз каждый запрос с выходом из системы вы выходите из системы не только после публикации. Преднамеренное? – danopz

+0

@copynpaste Единственный способ, которым я собираюсь получить что-либо, имеющее значение 'logout', - это нажать кнопку для выхода из системы, поэтому это работает. –

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

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