У меня есть промежуточное ПО, где я назначаю http заголовки для запроса / ответа.
$response = $next($request)->header('x-robots-tag', 'noindex', false);
В промежуточном программном обеспечении я также могу применить эту строку после выполнения вышеупомянутого, чтобы получить значение, которое я только что установил...
echo $response->headers->get('x-robots-tag');
Но я хочу получить доступ к этому вне промежуточного программного обеспечения, но я не уверен, как вернуть объект Response для достижения этой цели.
Как я могу получить$ response объект из моего контроллера?
$response = \WHAT\GOES\HERE?;
echo $response->headers->get('x-robots-tag');
Кажется, я не могу понять, что положить в часть \ WHAT \ GOES \ HERE снова получите доступ к объекту ответа.
Обновление № 1:
Все еще не решена, но часть проблемы заключается в том, чтобы добавить теги заголовка к объекту Response в промежуточном программном обеспечении.требует $next($request)
, и $ next Closure вызывает обработку ответа после выполнения кода контроллера.Поэтому, хотя я не уверен, как нацелить объект Response изнутри контроллера, не похоже, что в любом случае ему будет назначен тег заголовка до тех пор, пока потом.
Я мог бы установить заголовки непосредственно в PHPв промежуточном программном обеспечении с
public function handle($request, Closure $next /*, $tags */)
{
$tags = array_except(func_get_args(), [0,1]);
if( count($tags) > 0){
header('x-robots-tag: ' . implode(', ', $tags));
}
return $next($request);
}
, а затем получить к нему доступ в контроллере, вытащив его из headers_list()
, но это не идеально и работает за пределами путей Laravel ...
ДляВ этом контексте идея заключалась в том, чтобы назначить промежуточное программное обеспечение для маршрутов и с помощью промежуточного программного обеспечения назначить заголовок ответа x-robots-tag
с требуемыми атрибутами.noindex, nofollow
, что угодно ... Тогда я надеялся захватить это и заполнить эквивалентные метатеги соответственно, используя данные, предоставленные x-robots-tag
.Подход двух птиц с одним каменным подходом, но это оказалось сложнее, чем я ожидал.