如何解决Laravel使验证请求不起作用
我提交表格时没有任何反应。
这是我的脚步。
php artisan make:request PostRequest
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class PostRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'title'=>['required','max:255'],'article'=>['required'],'image'=>['image']
];
}
public function messages()
{
return [
'title.required'=>['need title'],'article.required'=>['need article'],];
}
}
?>
App / Http / Controllers / PostController.php
<?php
namespace App\Http\Controllers;
use App\Post;
use App\User;
use Illuminate\Http\Request;
use App\Http\Requests\PostRequest;
use Illuminate\Support\Facades\Auth;
class PostController extends Controller
{
public function store(PostRequest $request)
{
Post::create($request->all());
return redirect()->route('post.index');
}
}
?>
如果我不使用PostRequest,它会像这样完美地工作。
app / Http / Controllers / PostController.php
public function store(Request $request)
{
$post=new Post;
$post->user_id=Auth::user()->id;
$post->title=$request->title;
$post->article=$request->article;
$post->image=$request->image;
$post->save();
return redirect()->route('post.index');
}
我错过了一些步骤吗? 谢谢大家。
解决方法
您的rules()
函数具有一个返回数组。
public function rules()
{
return [
'title'=>['required','max:255'],'article'=>['required'],'image'=>['image']
];
}
更改为
public function rules()
{
return [
'title'=>'required|max:255','article'=>'required','image'=>'image'
];
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。