我正在使用laravel 5.4进行验证。
当我点击提交按钮时,只有所需的验证有效,但不是唯一的。
我做错了什么,如何修复它以使其按预期工作?
以下是我的表单(位于home.blade.php
):
<div class="panel-body">
<form class="form form-control" action="/todo" method="post">
{{csrf_field()}}
<fieldset class="form-group">
<textarea class="form-control" name="textbox" id="textArea"></textarea>
<button type="submit" class="btn btn-primary">Submit</button>
</fieldset>
</form>
{{-- for dispaying the error --}}
@if (count($errors) >0)
{{-- expr --}}
@foreach ($errors->all() as $error)
<h3 class="text-danger">{{$error}}</h3>
@endforeach
@endif
</div>
这里,我的Todo控制器的内容(在我的todocontroller.php
文件中):
use Illuminate\Http\Request;
use App\todo;
public function store(Request $request)
{
$todo = new todo;
$todo->body = $request->textbox;
$this->validate($request,[
"body" => "required|unique:todos"
]);
$todo->save();
return redirect('/todo');
}
答案 0 :(得分:0)
您应该只使用该字段的名称;你不需要给自己压力。
请看下面的代码段:
<?php
namespace App\Http\Controllers;
use App\Todo;// following Laravel's standards, your model name should be Todo; not todo
use Illuminate\Http\Request;
class NameOfYourTodoController extends Controller
{
public function store(Request $request)
{
$todo = new Todo();
// use the name of the field directly (here, textbox)
$this->validate($request, [
'textbox' => 'required|unique:todos'
]);
// other code logics here.
}
}