Почему данные сессии выводятся в адресной строке браузера после отработки формы?

подскажите пожалуйста что не так? есть форма на странице:

<form action="/pro-nas" method="PUT">
       @csrf
       @method('PUT')
       <select name="tema">
          <option value="{{$light}}">світла</option>
          <option value="{{$dark}}">темна</option>
       </select>
       <button type="submit">ttt</button>
    </form>

есть роут : Route::resource('pro-nas', 'PronasController');

и контроллер:

class PronasController extends Controller

{

public function index(Request $request)
{
    
    $light = 'pro-nas.css';
    $dark = 'pro-nas2.css';
    $tema = $request->input('tema');
    session(['tema' => $tema]);
    
    return view('pro-nas', compact('light','dark','tema'));
}

}

я хочу чтоб данные input сохранились в сессию после срабатывания формы и они сохраняются но урл страници меняется, к нему добавляются данные сессии получается так: mysite/pro-nas?_token=v0O2BqrCaR0j4HkGqqJuVc9tJvhtXXokaogc4rgn&_method=PUT&tema=pro-nas.css как убрать эти данные из адресной строки и сохранить их в сесии правильно?


Ответы (2 шт):

Автор решения: ioszhuk

Вместо session(['tema' => $tema]); вставьте:

$request->session()->push(['tema' => $tema']);

и вот статья для Вас по правильной работе с сессиями в Laravel 5: ссылка

→ Ссылка
Автор решения: Xaku

method="PUT" -> method="POST"

→ Ссылка