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'
    ];
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...