首页 > 解决方案 > 如何显示表单的内容

问题描述

在 laravel 中显示在表单中输入的内容时出现问题。添加什么代码来显示表单中输入的值?

--web.php

 Route::get('/show-name', ['uses' => 'NameController@show-name', 'middleware' => 'auth']);

-- NameContoller.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class NameController extends Controller
{
    public function show-name()
    {   
        return view('show-name');
    }
}

-- 显示名称.blade.php

<?php
print_r($_POST);
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" class="">
    <div class="required field">
            <label>Name</label>
            <input type="text" name="email" id="name">
    </div>
    <input type="submit" class="ui primary button" id="send" name="send" value="Send"></input>
</form>  

使用按钮后的消息 - MethodNotAllowedHttpException。我会很感激你的帮助。

标签: phplaravel

解决方案


您发送的是POST请求,而不是GET请求。

Route::post('/show-name', [
  'uses' => 'NameController@show-name', 
  'middleware' => 'auth'
]);

该文档告诉您如何获取所有数据 https://laravel.com/docs/5.8/requests#retrieving-input

该文档告诉您必须将数据传递给视图https://laravel.com/docs/5.8/views#passing-data-to-views

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class NameController extends Controller
{
    public function show-name(Request $request)
    {   
        $input = $request->all();
        return view('show-name')->with('data', $input);
    }
}

该文档告诉您如何访问传递到视图中的数据https://laravel.com/docs/5.8/blade#displaying-data

@php
echo print_r($data);
@endphp

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" class="">
    <div class="required field">
            <label>Name</label>
            <input type="text" name="email" id="name">
    </div>
    <input type="submit" class="ui primary button" id="send" name="send" value="Send"></input>
</form> 

此外,如果没有CSFR https://laravel.com/docs/5.8/blade#forms ,该表单将无法使用

输入是自关闭的,这意味着不需要</input>

此外,没有必要,<?php echo $_SERVER['PHP_SELF']; ?>因为使用 Laravel,您可以专门定义路由的名称。

<form method="post" action="/show-name" class="">

观看一些关于 Laravel 的基本教程,因为你对这一切都是错误的。


推荐阅读