【发布时间】:2014-04-19 19:32:54
【问题描述】:
我的数据库中有一个复合键。但是在提交表单时出现错误。我知道为什么由于主键重复而发生错误。但我不知道如何在 laravel 4 中修复它。这是架构
Schema::create('lecture_delegates', function($table){
$table->increments('id');
$table->integer('lecture_id');
$table->integer('delegate_id');
$table->timestamps();
$table->unique(array('lecture_id', 'delegate_id'));
});
这是模型。我已经使用了 felixkiss,但它不起作用。
class LectureDelegate extends BaseModel
{
public static $unguarded = true;
protected $table = 'lecture_delegates';
public static $rules = array(
'lecture_id' => 'required|unique_with:lecture_delegates, delegate_id',
'delegate_id' => 'required'
);
}
和控制器:
class LectureDelegatesController extends BaseController {
public function create()
{
$validation = Lecture::validate(Input::all());
$lecture_id = Input::get('lecture_id');
$delegate_id = Input::get('delegate_id');
if ($validation->fails()) {
return Redirect::to('lecture', $lecture_id)->withErrors($validator)->withInput();
}else {
LectureDelegate::create(array(
'lecture_id' => Input::get('lecture_id'),
'delegate_id'=> Input::get('delegate_id')
));
return Redirect::to('/')->with('message', 'Your are successfully apply to the lecture');
}
}
}
和形式:
{{ Form::open(array('route' =>'create_lecture_delegate', 'method' =>'POST')) }}
{{ Form::hidden('lecture_id', $lecture->id) }}
{{ Form::hidden('delegate_id', Auth::user()->id) }}
<p>{{ Form::submit('Apply') }}</p>
{{ Form::close() }}
当我尝试提交显示此错误消息的表单时。
SQLSTATE[23000]:完整性约束违规:1062 键“lecture_delegates_lecture_id_delegate_id_unique”的重复条目“1-4”(SQL:插入lecture_delegates(lecture_id,delegate_id,updated_at,created_at)值 (1, 4, 2014-04-19 08:22:37, 2014-04-19 08:22:37))
【问题讨论】:
标签: laravel