首页 文章

将参数从表单传递给Controller Laravel

提问于
浏览
1

我试图了解如何通过Laravel中的URL传递参数 .

在我的例子中,我有一个主页(/)(HomeController @ get__home和view home),它包含来自数据库表的n个数据 . 用户可以选择其中一个并转到下一页 .

第二个网址是/ / login

字段来自(当然)第一页,取决于选择的是哪条记录 .

我读过this,但我想我已经不在了 .

我找不到将参数传递给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">
...

1 回答

  • 3

    由于您使用的是带有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');
        }
    }
    

    希望这可以帮助...

相关问题