php - Laravel 表单验证器错误

标签 php laravel api validation laravel-5.3

我想在将数据存储到数据库之前验证输入字段,因此我浏览了 laravel 文档并遵循了这些

  1. php artisan make:request StoreLessons
  2. StoreLessons

    public function rules()
        {
            return [
                'title' => 'required|unique:lesson',
                'body' => 'required',
            ];
        }
    
  3. 在我的 Controller 中

namespace App\Http\Controllers;

use Response;
use App\lesson;
use Illuminate\Http\Request;
use App\Acme\Transformers\LessonTransformer;
use Illuminate\Support\Facades\Input;
use App\Http\Requests\StoreLessons;

class LessonsController extends ApiController 
{

    protected $lessonTransformer;

    function __construct(LessonTransformer $lessonTransformer) 
    {
        $this->lessonTransformer = $lessonTransformer;
    }

    //fetch all and pass a metadata 'data' 
    public function index() 
    {
        $lessons = Lesson::all();

        return $this->respond([
            'data' => $this->lessonTransformer->transformCollection($lessons->all())
        ]);
    }

    //add a new lesson to lessons table
    public function store(StoreLessons $request) 
    {
        Lesson::create($request->all());

        //Lesson::create(input::all());

        return $this->respondCreated('Lesson created successfully');
    }


}

现在我收到此错误

QueryException in Connection.php line 770:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel_api.lesson' doesn't exist (SQL: select count(*) as aggregate from `lesson` where `title` = the)

我不知道为什么它要寻找lesson表,我有一个lesson

但是store()函数可以使用默认验证

//this works fine but i wan to do the validation 
    public function store() 
    {
        if (! input::get('title') or ! input::get('body')) {
            return $this->respondBadRequest();
        }

        Lesson::create(input::all());

        return $this->respondCreated('Lesson created successfully');
    }

谢谢

最佳答案

unique:table,column,except,idColumn

独特的语法如上,传递的第一个参数是表名。

public function rules() { 
    return [ 'title' => 'required|unique:lesson', 'body' => 'required', ];
}

此处的唯一规则是查找表类(class)。尝试将其更改为类(class)

关于php - Laravel 表单验证器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41499926/

相关文章:

php - 如何在不显示 ID 的情况下唯一标识记录?

java - 如何检查上传的文件是否受密码保护?

java - 如何优雅地向 API 发起多个请求

java - 如何使用 Apache POI 旋转电子表格单元格中的文本?

php - fatal error : Class 'COM' not found PHP. Win7 - Apache - PHP

php - MySQL 更新多列问题

PHP:测试两个双变量会在不更改变量的情况下给出不同的结果

php - 是否有仅适用于控制台应用程序的 laravel 版本?

php - 如何使用 Laravel 从数据库中存储和检索图像内容

jquery - Laravel 文件管理器上传多个图像