将 html 中的值发送到 Laravel 中的路由

Send a value from html to Routes in Laravel

我想知道如何将 html 文件中的值发送到 laravel 中的 routes.php 文件。这是我的 html:

<h1 id="title"  name="otherUser" value="{{session()->get('user2')}}">{{session()->get('user2')}}</h1>

这是我的 php:

Route::post('commendUser', function(Request $request) {
    $data = $request->all();
    $username = /*FIXME*/ ;
    echo($username);
});

任何人都可以解释如何从 html 正确获取用户名值到路由吗?谢谢!

杰克

您可以使用名称属性从 html 中获取任何值:

$username = $request->otherUser;

or :

$username = $request->input('otherUser');

or using a global helper:

$username = request('otherUser');

or using Input facade :

$username = Input::get('otherUser');

但是 您需要使用 post 方法而不是 h1 标记来设置表单,例如:

<form action="/commendUser" method="post">
    {{ csrf_field() }}
    <input type="text" name="otherUser" value="{{session()->get('user2')}}">
    <button type="submit">Submit</button>
</form>

并且在您的路线中,您可以使用 dd($username) 而不是回显它。

更新

您还需要在 web.php 文件的顶部导入 Request facade,如下所示:

use Illuminate\Http\Request;

Route::post('commendUser', function(Request $request) {
    dd($request->input('otherUser'));
});

还有

任何指向 POSTPUTDELETE 路由的 HTML 表单都应包含 CSRF 令牌字段。否则,请求将被拒绝。您可以在 CSRF documentation 中阅读有关 CSRF 保护的更多信息,因此我已将其添加到表格中:

如果

您仍然得到一个空值,这可能是 会话值。

您没有正确使用 HTML 标签,H1 不是用于发送数据的表单域。改用。