Laravel版本(7.x)。
我有三个表companies
,complaint_types
和complaints
。
投诉与company
相关。
[将complaint
分配给employee
后,只有他/她才能在访问后看到并输入投诉状态。在输入注释之前,必须先验证complaint
,否则必须不允许输入注释,这是在通过称为complaint_id
的隐藏字段提交表单时进行的。
我添加了此验证,因为我不希望任何人打开检查工具,使用值并导致应用程序出错。
表格:
companies: -> complaint_types: -> complaints: |-- id |-- id |-- id |-- ... |-- company_id |-- complaint_type_id |-- ... |-- ...
Complaint.php:
public function complaintType() { return $this->belongsTo(ComplaintType::class); }
ComplaintType.php:
public function company() { return $this->belongsTo(Company::class); } public function complaints() { return $this->hasMany(Complaint::class); }
ComplaintController.php:
private function validate($data) { # variables $rules = [ 'complaint_id' => [ 'required', 'exists:complaints,id,complaintType.company_id,' . session()->get('COMPANY') ], -- OR -- 'complaint_id' => [ 'required', 'exists:complaints,id,complaint_types.company_id,' . session()->get('COMPANY') ], ... ]; $messages = [ 'complaint_id.required' => '`Complaint` - Required<br>', 'complaint_id.exists' => '`Complaint` could not be identifed<br>', ... ]; return Validator::make($data, $rules, $messages); }
错误
Column not found: 1054 Unknown column 'complaintType.company_id' in 'where clause' (SQL: SELECT COUNT(*) as aggregate FROM complaints WHERE id = 3 AND complaintType.company_id = 1)
Laravel版本(7.x)。我有三个表公司,compression_types和投诉。投诉与一家公司有关。将投诉分配给员工时,只有他/她...
$ rules = ['complaint_id'=> ['需要','exists:complaints,id,complaintType.company_id'。 session()-> get('COMPANY_ID')],