我正在学习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 App\Http\Controllers;
use Illuminate\Http\Request;
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)
答案 0 :(得分:2)
首先,您需要调用模型use App/Your_model_name;
,然后必须保存数据。
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Suggest; //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
答案 1 :(得分:0)
toStream()
删除表单下方的@php标记,然后删除router.php
filter()
然后在Controller中:
<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>
答案 2 :(得分:-1)
在表单的action属性中添加以下代码。它将捕获发布URL。提交表单时,它将把表单数据发送到URL端点。
action="{{ url('sugestoes')}}"
然后死掉并转储到控制器存储功能中
public function store(Request $request)
{
dd($request->all());
}