没有执行一个列更新查询。添加的数据不在数据库中更新。
我的看法是:
<?php echo Form::open(array('url' => 'admin/add-edit-spe')) ;?>
/* form elements */管理控制器
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::$errorsdd($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" } 其他部分由于验证失败而不执行。有人能告诉我这个验证错误意味着什么吗?为什么会发生?
版我制作了
我重新安排了插入和更新的验证规则如下:
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'
);
}在这种情况下,升级是有效的,插入是有效的。但是只有一种情况不令人满意,那就是“如果数据库包含一个名为"abc”和"xyz“的条目。我们将在插入时检查它们是否是唯一的。但是如果我为Edit选择"xyz”并将其名称更改为"abc“并单击update.两个"abc”将出现。“存在”规则满足。这种情况不能发生。我应该做什么来避免这个测试用例。?
发布于 2014-11-03 10:22:49
对于晋升,请使用此规则。将当前行id传递给规则。它会有魅力的
$rules = array(
'spe_name' => 'required|unique:spec,:id',
'description' => 'required'
)有关更多信息,检查
https://stackoverflow.com/questions/26710043
复制相似问题