하나의 열 업데이트 쿼리가 수행되지 않습니다. 추가 된 데이터가 데이터베이스에서 업데이트되지 않습니다.laraveldb 업데이트가 수행되지 않습니다.
는내보기 :
<?php echo Form::open(array('url' => 'admin/add-edit-spe')) ;?>
/* form elements */
Admincontroller는
public function postAddEditSpe()
{
Input::flash();
$rules = array(
'spe_name' => 'required|unique:spec',
'description' => 'required'
);
$messages = array(
'spe_name.required' => 'Spe name is required',
'spe_name.unique:' => 'Spe name should be unique',
'description.required' => 'Spe description is required',
);
$validator = Validator::make(Input::all(), $rules, $messages);
if ($validator->fails())
{
dd($validator->errors);
/* shows the same page */
}
else{
$data['spe_id']=Input::get('spe_id');
$data['spe_name']=Input::get('spe_name');
$data['spe_content']=Input::get('description');
$data['r_tags']=Input::get('r_tags');
$data['f_spe']=Input::get('f_spe');
$data['r_spe']=implode(",",Input::get('r_id'));
DB::table('spec')->where('spe_id','=',$data['spe_id'])->update(array('spe_name' => $data['spe_name'],'spe_content' => $data['spe_content'],'f_spe' => $data['f_spe'],'related_spe' => $data['r_spe'],'r_tags' => $data['r_tags']));
}
}
검증 오류가 보여
는Undefined property: Illuminate\Validation\Validator::$errors
dd($validator->messages());
의 출력은 :
object(Illuminate\Support\MessageBag)#895 (2) { ["messages":protected]=> array(1) { ["spe_name"]=> array(1) { [0]=> string(43) "The spe name has already been taken." } } ["format":protected]=> string(8) ":message" }
유효성 검증 실패로 인해 else 부분이 실행되지 않습니다. 아무도이 유효성 검사 오류가 무슨 뜻인지 말해 줄래? 왜 그런가?
Edition은 내가 이런 식으로 삽입 및 업데이트에 대한 유효성 검사 규칙을 다시 배열
을했다 :
if(Input::get('speciality_id')!=0){
// Updation
$rules = array(
'speciality_name' => 'required|exists:speciality',
'description' => 'required'
);
}
else{
// Insert
$rules = array(
'speciality_name' => 'required|unique:speciality',
'description' => 'required'
);
}
을이 경우 그 갱신에 삽입 노력하고, 노력하고 있습니다. 그러나 하나의 경우 만 만족하지 못합니다. "db에 이름이"abc "및"xyz "인 항목이 포함되어있는 경우 삽입 중에이 항목이 고유한지 확인합니다. 그러나 편집을 위해"xyz "를 선택하고 이름을 변경하면 "abc"로 두 번 클릭하면 "abc"가 발생합니다 "존재"규칙이 충족됩니다.이 시나리오는 발생하지 않아야합니다.이 테스트 사례를 피하기 위해 어떻게해야합니까?
당신이 laravel 필요한 모든 얻을 수 있음을 디버깅 않았다 양식에서 매개 변수를 게시 하시겠습니까? – Serg
@Serg : app.php에서 디버그를 true로 표시했습니다. 사이트에 오류가 표시되지 않았습니다. (용서해주세요 .. 오늘은 laravel을 배우기 시작했습니다.) – Zammuuz
DB :: table ('spec') 바로 앞에 줄'dd ($ data) '를 추가하면 출력물을 게시 할 수 있습니까? -> update() ? – soulkphp