我正在尝试了解如何通过Laravel中的URL传递参数。
在我的情况下,我有一个主页(/)(HomeController @ get__home和view home),它包含来自数据库表的n个数据。 用户可以选择其中一个并转到下一页。
第二个网页是/ {param from first page} / login
第一页的字段{param}来自(当然)第一页,取决于选择的是哪条记录。
我读过this,但我想我已经不在了。
我找不到将参数传递给网址的方法。
在我的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">
...
答案 0 :(得分:6)
由于您使用带有post方法的表单,因此您应该定义如下路径:
Route::post("/login", "LoginController@login");
然后在表单操作中调用它:
<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');
}
}