Php Laravel表单验证程序错误
我想在将数据存储到数据库之前验证输入字段,所以我浏览了laravel文档并遵循了以下步骤Php Laravel表单验证程序错误,php,laravel,api,validation,laravel-5.3,Php,Laravel,Api,Validation,Laravel 5.3,我想在将数据存储到数据库之前验证输入字段,所以我浏览了laravel文档并遵循了以下步骤 php工匠制作:请求StoreLessons 在StoreLessons public function rules() { return [ 'title' => 'required|unique:lesson', 'body' => 'required', ]; } 在我的控制器中 现在我得
php工匠制作:请求StoreLessons
StoreLessons
public function rules()
{
return [
'title' => 'required|unique:lesson',
'body' => 'required',
];
}
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)
我不知道它为什么要找课程
表格我有一个课程
表格
但是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', ];
}
这里的唯一规则查找表
lesson
。尝试将其更改为课程
请在相关模型类名后的下一行中这样写
public function rules()
{
return [
'title' => 'required|unique:lesson',
'body' => 'required',
];
}
类xyz扩展模型
{
受保护的$table='课程'
代码---
}
试试这个。与您的问题无关,但是,根据laravel命名约定,您的型号名称应该是
Lesson
,而不是Lesson
。因此,此模型将自动在您的数据库中找到表lessons
。嘿,感谢您的时间,在unique:lesson
更改为lessons
时出现了一个错误,我的意思不是在您的验证规则中,而是在模型的名称中use App\lesson
应该是use App\lesson
非常感谢您的工作,您能告诉我如何将错误作为JSON
传递到视图吗?现在,如果我发送带有空字段的请求,一旦您通过验证,我将重定向到welcom.blabe.php
,如果存在验证错误,请执行此操作<代码>返回响应()->json($validator->errors(),422)。这里,$validator
是您的验证结果。您能告诉我如何使用我的方法来执行此操作吗?我必须返回成功和失败公共函数存储(StoreLessons$request){Lesson::create($request->all());return response()->json($validator->errors(),422)//Lesson::create(input::all());return$this->respondCreated('Lesson created successfully');}
看看,默认情况下,Laravel 5.3会发送一个错误,状态代码为422。因此,删除我在控制器中建议的上述行。在ajax中,error函数
console.log(respnsoe)。检查PHPMick答案。我正在构建一个API,因此我没有ajax
,因此我想知道如何将这些错误消息作为JSON发送,如果可能的话,请您发布一些示例代码,正如您所说,我在422中没有收到任何laravel默认消息,我正在使用postman测试API,所以当我用空feild发布时,我会看到laravel主页