Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 22.07.2016 09:36:35

Получить глобальную переменную

Здравствуйте!

На всех страницах сайта есть список городов. Как получить выбранный город и сделать его доступным везде в коде?

Я пробовал так: сделал контроллер, который достает переменную из списка при событии onchange и записывает ее в сессию:

В шаблоне имею форму со списком городов, доступную на всех страницах:

{!! Form::open(array('action' => 'GorodController@gorod', 'class' => 'navbar-form navbar-left', 
                     'method' => 'get', 'onchange' => 'this.form.submit()')) !!}

GorodController:

class GorodController extends Controller
{
    public function gorod()
    {
        $gor = Request::all();
        return Session::put('gor', $gor);
    }
}

На это выдает ошибку: Action obr\Http\Controllers\GorodController@gorod not defined.

В общем заколебался биться над этой проблемой. Подскажите пожалуйста, как это осуществить?

Заранее спасибо за помощь!

Не в сети

#2 22.07.2016 09:43:55

Re: Получить глобальную переменную

Ошибку выдает, скорее всего, из-за того, что маршрут не определен для action. Т.е. нужно в routes.php добавить что-нибудь вроде:

Route::post(saveCity'', 'GorodController@gorod');

Не в сети

#3 22.07.2016 10:02:11

Re: Получить глобальную переменную

Я одно не пойму до конца - а что я должен в маршруте указать? Город можно поменять с любой страницы сайта, какой URI будет я же не знаю.

Не в сети

#4 22.07.2016 14:27:58

Re: Получить глобальную переменную

zaratustra2 пишет:

Я одно не пойму до конца - а что я должен в маршруте указать? Город можно поменять с любой страницы сайта, какой URI будет я же не знаю.

Ничего. В твоем примере - форма, которую ты посылаешь будет использовать маршрут, т.е. сработает метод GorodController@gorod. В этом методе делай что нужно, а потом переведи пользователя либо на главную страницу, либо на ту страницу, на которой он был когда выбрал город:

return redirect()->back();

Изменено AlexeyMezenin (22.07.2016 14:28:31)

Не в сети

Подвал раздела