Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте!
На всех страницах сайта есть список городов. Как получить выбранный город и сделать его доступным везде в коде?
Я пробовал так: сделал контроллер, который достает переменную из списка при событии 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.
В общем заколебался биться над этой проблемой. Подскажите пожалуйста, как это осуществить?
Заранее спасибо за помощь!
Не в сети
Ошибку выдает, скорее всего, из-за того, что маршрут не определен для action. Т.е. нужно в routes.php добавить что-нибудь вроде:
Route::post(saveCity'', 'GorodController@gorod');
Не в сети
Я одно не пойму до конца - а что я должен в маршруте указать? Город можно поменять с любой страницы сайта, какой URI будет я же не знаю.
Не в сети
Я одно не пойму до конца - а что я должен в маршруте указать? Город можно поменять с любой страницы сайта, какой URI будет я же не знаю.
Ничего. В твоем примере - форма, которую ты посылаешь будет использовать маршрут, т.е. сработает метод GorodController@gorod. В этом методе делай что нужно, а потом переведи пользователя либо на главную страницу, либо на ту страницу, на которой он был когда выбрал город:
return redirect()->back();
Изменено AlexeyMezenin (22.07.2016 14:28:31)
Не в сети
Страницы 1