Laravel - Как добавить параметр GET в любое время? - PullRequest
0 голосов
/ 07 марта 2020

У меня есть проект Laravel (test.com).

Это перенаправлено с нескольких сайтов. (test1.com, test2.com...)

При перенаправлении $ _GET имеет параметр, указывающий, где оно пришло от.

Например: test.com?from=test1, test.com?from=test2

Я бы хотел установить параметр "from" для всех URL на test.com.

Другими словами, когда создаете URL, хотите добавить параметр "from".

test.com/product/1?from=test1
test.com/product/create?from=test1
...

Заранее спасибо.

1 Ответ

0 голосов
/ 07 марта 2020

Предыдущий URL можно получить с помощью предыдущего метода :

url()->previous();

Таким образом, вы можете добавить параметр from с помощью middleware ,

создайте файл промежуточного программного обеспечения следующим образом:

<?php

namespace App\Http\Middleware;

use Closure;

class GetReferer
{
    /**
     * Handle the incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string  $from
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $previous = url()->previous().
        $from = parse_url($previous)['host'];
        if ($from == $request->getHost()) {
            $from = $request->session()->get('from');
        } else {
            $request->session()->put('from', $from);
        }
        $request->from = $from;
        return $next($request);
    }

}

Если вы хотите, чтобы промежуточное программное обеспечение запускалось при каждом HTTP-запросе к вашему приложению, укажите класс промежуточного программного обеспечения в $middleware property вашего app/Http/Kernel.php класс.

...