无法从表单 LARAVEL 获取输入数据



我正在学习Laravel,我在尝试从表单中获取数据时遇到了困难。

我已经可以用get取回数据了,但使用POST我遇到了很多麻烦。以下是我正在使用的内容:

形式:

<form id="forms" method="POST" action="sugestoes" novalidate>
{{ csrf_field() }}
<div class="form-row">
<div class="form-group col-md-12">
<label for="obs">Observações:</label>
<textarea type="text" class="form-control" name="obs" placeholder="Observações" required></textarea>
</div>
</div>
<hr>
<button type="submit" class="btn btn-primary">Enviar</button>
</form>
@php 
if (isset($_POST["obs"])) {
echo "IN";
}
@endphp

控制器:

<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class PostController extends Controller
{
public function store(Request $request)
{
$name = $request->input('obs');
return redirect('sugestoes');

//
}
}

路线:

Route::post('sugestoes', 'PostController@store');

我试图达到的预期行为是提交帖子,然后用一个空表单返回到同一页面。稍后我将把输入数据发送到数据库中,但目前我只想让帖子发挥作用。

我想我错过了一些非常基本的东西,但我一直在遵循指南并在网上寻找,我已经取得了一些进展,但我真的被困在了这里。

(更多信息,这是Laravel 5.4,我使用的是XAMPP(

首先,您需要调用模型use App/Your_model_name;,然后必须保存数据

namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppSuggest; //Suggest model, let's hope you have suggest table
class PostController extends Controller
{
public function store(Request $request)
{
$suggest = new Suggest; //model
$suggest->name = $request->obs; //name is DB name, obs is request name
$suggest->save(); //save the post to DB
return redirect()->back()->with('success', 'Saved successfully'); //return back with message
}
}

然后,如果你想在HTML页面上闪烁消息

@if(session('success'))
<div class="alert alert-warning alert-dismissible" id="error-alert">
<strong style="color: white;">{{session('success')}}</strong>
</div>
@endif
<form id="forms" method="POST" action="{{ route('sugestoes') }}" novalidate>
{{ csrf_field() }}
<div class="form-row">
<div class="form-group col-md-12">
<label for="obs">Observações:</label>
<textarea type="text" class="form-control" name="obs" placeholder="Observações" required></textarea>
</div>
</div>

<button type="submit" class="btn btn-primary">Enviar</button>
</form>

删除表单下方的@php标签,然后在router.php 中

Route::post('/sugestoes', 'PostController@store')->name('sugestoes');

然后在控制器中:

<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class PostController extends Controller
{
public function store(Request $request)
{
$name = $request->input('obs');
return redirect('/sugestoes'); // you should have GET in Route.php

//
}
}

在表单的action属性中添加以下代码。它将捕获帖子URL。当您提交表单时,它会将表单数据发送到URL端点。

action="{{ url('sugestoes')}}"

然后死亡并转储在您的控制器存储功能

public function store(Request $request)
{
dd($request->all());
}

最新更新