【发布时间】:2020-06-11 17:50:46
【问题描述】:
我提出了一个自定义验证请求
class StoreModule extends FormRequest
{
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|unique:posts|max:50',
'period' => 'required|integer|min:1',
'block' => 'required|integer|min:1',
'study_points' => 'required|integer|min:1',
'my_teacher_id' => 'required',
'tags' => 'required',
'coordinator_id' => 'required',
'category' => 'required|max:50',
'deadline' => 'required'
];
}
}
但是当我将这个类应用到我的控制器时
public function store(StoreModule $request)
{
$module = Module::create($request->all());
$module->tags()->sync($request->tags);
return redirect()->route('admin.index');
}
我突然收到一个 SQL 错误
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mydatabase.posts' doesn't exist
当我用常规请求替换 StoreModule extends FormRequest 类时,一切工作正常,对象存储在我的 mydatabase.modules 表中。
为什么 laravel 突然找 mydatabase.posts 表?我已经尝试过声明
public $table = 'modules';
在我的模块模型类中
感谢任何提示或帮助。请询问我是否需要提供更多详细信息
【问题讨论】:
-
你在使用另一个数据库连接吗?如果是,您应该在验证规则中添加连接名称。例如
'name' => 'required|unique:mydatabase.posts|max:50',-> 此规则正在访问您的帖子表
标签: laravel validation request