这个问题已经困扰了我几个小时,所以希望你们中的一些人能够提供帮助。预先感谢。
问题很简单:当我单击表单的“提交”按钮时,什么也没有发生。就像,什么都没有。没有错误,没什么。 在开始开发表单之前,我已经通过创建行为创建了消息模型
php artisan make:model Message --resource
因此,我已经创建,存储等方法。已经完成并准备就绪(感谢工匠!)。 在我的路线web.php路线文件中,我有:
Route::resource('Message','MessageController');
这应该自动链接所有方法,对吧?
无论如何,我的表单是:
{!! Form::open(['action' => 'MessageController@store', 'method' => 'POST']) !!}
<ul class="row">
<li class="col-sm-6">
<label>{{Form::label('name','Name')}}</label>
{{Form::text('name', '', ['class' => 'form-control'])}}
</li>
<li class="col-sm-6">
<label>{{Form::label('email','Email')}}</label>
{{Form::text('email', '', ['class' => 'form-control', 'placeholder' => 'Your email'])}}
</li>
<li class="col-sm-12">
<label>{{Form::label('message','Message')}}</label>
{{Form::textarea('message','', ['class' => 'form-control'])}}
</li>
{{Form::submit('Submit', ['class' => 'btn-round'])}}
</ul>
{!! Form::close() !!}
和我的MessageController @ store看起来像这样:
public function store(Request $request)
{
$this -> validate($request, [
'name' => 'required',
'email' => 'required',
'message' => 'required'
]
);
$message = new Message();
$message -> name= $request -> input('name');
$message -> email= $request -> input('email');
$message -> text= $request ->input('text');
$message -> user_id = Auth::user()->id;
$message->save();
return redirect('/');
}
该控制器似乎无法正常工作,因为即使我取消了验证,也没有任何反应。我不知道我在做什么错!
答案 0 :(得分:0)
您必须使用路线。
在HTML中:
<form method="post" action="{{url('login')}}" accept-charset="UTF-8">
在route / web.php中:
Route::post('login','WelcomeController@log_in');
答案 1 :(得分:0)
好吧,首先通过运行以下命令确保正确定义了路由:
php artisan route:list
您应该看到一个表格,其中列出了所有带有其名称,路由,控制器的路由。 您应该会看到Message的6条路线,我们现在正在寻找的路线是“ message.store”
我看到您正在使用laravel Collector来渲染表单,您确定其渲染正确吗?它是否使用正确的表单操作路线和正确的textareas名称来呈现DOM元素?只需从浏览器中检查即可。
如果没有,您可以尝试使用简单的刀片视图:
<form method="POST" action = "{{ route('message.store') }}">
<!-- include CSRF token as the following -->
@CSRF
@if ($errors->has('name'))
<span class="invalid-feedback">
<ul>
@foreach($errors->get('name') as $error)
<li>
{{ $error }}
</li>
@endforeach
<input name="name">
@if ($errors->has('name'))
<span class="invalid-feedback">
<ul>
@foreach($errors->get('email') as $error)
<li>
{{ $error }}
</li>
@endforeach
</ul>
</span>
@endif
<input name="email">
@if ($errors->has('name'))
<span class="invalid-feedback">
<ul>
@foreach($errors->get('message') as $error)
<li>
{{ $error }}
</li>
@endforeach
</ul>
</span>
@endif
<input name="message">
<submit />
</form>
然后确保从DevTools>网络触发了发布请求。