Я пытаюсь понять, как передавать параметры по URL-адресу в Laravel.
В моем случае у меня есть домашняя страница (/) (HomeController @ get__home и просмотр дома), которая содержит n данных из таблицы базы данных. Пользователь может выбрать один из них и перейти на следующую страницу.
Вторая страница url / / param из первой страницы} / login
Поле {param из первой страницы} происходит с (конечно) первой страницы и зависит от того, какая запись была выбрана.
Я читал это , но я думаю, что я в стороне.
Я не могу найти способ передать параметр в URL.
В моем Route.php:
Route::get("/", "HomeController@home"); Route::get("/{position}/login", "LoginController@login");
и в контроллерах:
class HomeController extends Controller { public function home(){ $foos = Foo::all(); return view('home')->with('foos',$foos); } } class LoginController extends Controller { public function login(Foo $foo) { return view('login'); } }
и в home.blade.php
<form class="" action="{{action(LoginController@login)}}" method="post"> ...
Поскольку вы используете форму с методом post, вы должны определить маршрут следующим образом:
Route::post("/login", "LoginController@login");
И затем назовите его в форме action:
<form action="{{action('LoginController@login')}}" method="post"> <select name="position"> <option value="1">Position 1</option> <option value="2">Position 2</option> </select> ...
Затем в контроллере вы можете получить опцию в запросе:
class LoginController extends Controller { public function login(Request $request) { $position = $request->position; return view('login'); } }
Надеюсь это поможет…