【问题标题】:Use form parameters in a route with Laravel 5在 Laravel 5 的路由中使用表单参数
【发布时间】:2015-05-10 20:08:45
【问题描述】:

假设我的 routes.php 文件中有以下内容:

Route::get('/test/{system}/{link}', function($system,$link)
{
    return "test ok";
});

然后,我想用我认为的表单访问这条路线:

<form action="/" method="get">
    <input type="text" name="system">
    <input type="text" name="link">
    <button type="submit">Go!</button>
<form>

最好的方法是什么?我知道我可以这样做:

Route::get('/',function(){
    $input = Request::only('link','system');
    $url = 'test/'.$input['system'].'/'.$input['link'];
    return redirect($url);
});

但我不确定这是否是实现它的正确方法。

提前致谢!

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

    您可以让 js 更改表单操作,然后提交。你的方法没问题,但一定要把它放在路由文件的末尾。我实际上会让表单提交到某个特定的路线(而不是 / 可能是 /redirect-to 或其他东西)并从那里重定向。

    【讨论】:

    • 实际上,我现在有一个 js,只是认为应该有一个更后端的方式来做到这一点。当然,我有一个具体的路线,上面只是一个例子。看来我的想法并没有那么远,再次感谢。
    【解决方案2】:

    你可以这样做。我不确定这是否是最好的过程。

    routes.php 中,执行以下操作:

    Route::get('/form', function(){
        return View::make('formview');
    });
    
    Route::get('/formaction', function(){
        $link = Request::input('link');
        $system = Request::input('system');
        return "$link";
    });
    

    在视图中,像往常一样,以下内容:

    <form method="get" action="formaction">
        System: <input type="text" name="system" />
        Link: <input type="text" name="link" />
        <input type="submit" value="ok" />
    </form>
    

    Laravel 的Request 不依赖于请求所用的动词。

    【讨论】:

    • 我需要 /test/{system}/{link} 因为我将它用于其他目的 (REST)。
    猜你喜欢
    • 2015-07-15
    • 2014-07-21
    • 2018-05-18
    • 2015-06-25
    • 2015-06-17
    • 2015-04-17
    • 2017-09-30
    • 1970-01-01
    相关资源
    最近更新 更多