我正在学习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());
}