데이터베이스에 복합 키가 있습니다. 하지만 양식을 제출할 때 오류가 발생합니다. 왜 기본 키에 대한 복제 때문에 오류가 발생하는지 알고 있습니다. 그러나 내가 laravel 4에 고칠 수 있습니다 방법을 몰라 여기 스키마 여기라라 벨 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] 무결성 제약 위반 : 키 'lecture_delegates_lecture_id_delegate_id_unique'에 대한 1,062 중복 엔트리 '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))