나는 Laravel과 PHP의 기초를 가르치기 위해 기본 CMS를 만들고 있습니다.Laravel 4 : 고유하지 않음 (데이터베이스) 유효하지 않음
'페이지'테이블이 있으며 url_title을 저장하고 있습니다. 분명한 이유로이 URL 제목이 고유해야합니다. 그러나, 그것을 검증하기 위해 무엇을 하든지 실패합니다. 그것은 어쨌든 저장합니다. 나는 그것이 단순한 것이라고 확신한다. 이 코드의 문제점을 발견 할 수 있습니까?
또한 뷰에서 Former를 사용하고 있는데이 뷰도 유효성을 검사하지 않습니다. 고유 한 메서드에서 마지막 옵션으로 값을 하드 코딩하려고 시도했지만 실패했습니다.
http://anahkiasen.github.io/former/
http://laravel.com/docs/validation#rule-unique
미국 : 독특한 :
class Pages extends Eloquent {
protected $guarded = array('id');
public static $rules = array(
'id' => 'unique:pages,url_title,{{$id}}'
);
public static function validate($data) {
return Validator::make($data, static::$rules);
}
}
I : 여기
public function store()
{
$validation = Pages::validate(Input::all());
if($validation->fails()) {
Former::withErrors($validation);
return View::make('myview');
} else {
Pages::create(array(
'title' => Input::get('title'),
'url_title' => Input::get('url_title'),
'status' => Input::get('status'),
'body' => Input::get('body'),
'seo_title' => Input::get('seo_title'),
'seo_description' => Input::get('seo_description')
));
//check which submit was clicked on
if(Input::get('save')) {
return Redirect::route('admin_pages')->with('message', 'Woo-hoo! page was created successfully!')->with('message_status', 'success');
}
elseif(Input::get('continue')) {
$id = $page->id;
return Redirect::route('admin_pages_edit', $id)->with('message', 'Woo-hoo! page was created successfully!')->with('message_status', 'success');
}
}
}
내 모델 : 제외 테이블, 열, idColumn
여기
내 컨트롤러입니다 다음을 시도 :
public static $rules = array(
// 'id'=> 'unique:pages,url_title,{{$id}}'
// 'id'=> 'unique:pages,url_title,$id'
// 'id'=> 'unique:pages,url_title,:id'
// 'id'=> 'unique:pages,url_title,'. {{$id}}
// 'id'=> 'unique:pages,url_title,'. $id
);
아이디어가 있으십니까? 나는 이전을 창조 한 녀석에게 말했다. 그는 머리도 꼬리도 만들 수 없습니다. 그는 Laravel이 독창성을 검사하고 DB에서 직접 실행하여 어떤 일이 발생하는지 확인하기 위해 Laravel이 사용하는 쿼리를 찾기 위해이를 추적 할 것을 제안했습니다. 이 작업을 수행 할 쿼리를 찾을 수 없습니다. 누군가 그것을 추적 할 위치를 알고 있습니까?
많은 감사
데이터베이스에서 고유 한 열을 사용하여 복제가 실패합니다 ... .... 아무 것도 작동하지 않으면 최소한 무결성을 유지할 수 있습니다. – itachi
감사합니다. 따라갈 지 모르겠습니다. 나는 고유 한 ID를 사용하여 테스트를하고 있으며 url_title도 고유해야합니다. 말이 돼? – T2theC
id 열이 자동 증가이면 어떤 방식 으로든 고유하게됩니다 (id에 대해 테스트 할 필요가 없음을 의미). 슬러그가 고유한지 여부를 확인해야합니다. – itachi