比如說前臺(tái)傳遞過來一個(gè)json數(shù)組,里面每一個(gè)條目都是一條數(shù)據(jù),在這種情況下改如何處理呢?
<?php
namespace App\Http\Requests;
use App\User;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
class StoreEvaluateStudentCourseRecordPost extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
// 保存評(píng)價(jià)記錄驗(yàn)證
'*.type' => 'required',
'*.class_id' => 'required|integer',
'*.course_id' => 'required|integer',
'*.student_id' => 'required|integer',
'*.quota_id' => 'required|integer',
'*.evaluate_data' => 'required|max:191',
];
}
/**
* 配置驗(yàn)證器實(shí)例。
*
* @param \Illuminate\Validation\Validator $validator
* @return void
*/
public function withValidator($validator)
{
/**
* 目前只有一個(gè)評(píng)價(jià)記錄模板,每提交一種類型的評(píng)價(jià)需要新建一張表存儲(chǔ),由于評(píng)價(jià)類型傳遞字段的不可控性,我采取每一種評(píng)價(jià)類型建一張表的方式
* 驗(yàn)證:
* student_course 老師對(duì)學(xué)生課程指標(biāo)評(píng)價(jià) 對(duì)應(yīng)的是evaluate_student_course_records 表
*/
$validator->after(function ($validator) {
$infos = $validator->getData();
if(!empty($infos) && isset($infos[0]) && is_array($infos[0])){ // 多維數(shù)組上傳
foreach ($infos as $info){
if(!empty($info['type']) && $info['type'] == 'student_course' && !empty($info['class_id']) && !empty($info['course_id']) && !empty($info['student_id'])
&& !empty($info['quota_id']) && !empty($info['evaluate_data'])
){
if(User::hasQuota(Auth::id(), $info['class_id'], $info['course_id'], $info['quota_id'])){
return true;
}
}
}
}
$this->failedValidation($validator); // 讓校驗(yàn)失敗
});
}
// public function validator(ValidationFactory $factory)
// {
// $data = $this->validationData();
// if(!empty($data) && is_array($data)){
// foreach ($data as $d ){
// $instance = $factory->make(
// $d, $this->container->call([$this, 'rules']),
// $this->messages(), $this->attributes()
// );
// if (method_exists($this, 'withValidator')) {
// $this->withValidator($instance);
// }
// $instance->validate();
// }
// }
// }
}
- 2 回答
- 0 關(guān)注
- 530 瀏覽
添加回答
舉報(bào)
0/150
提交
取消