Eloquent / Laravel에서 저장하는 동안 예상치 못한 데이터가 발견되었습니다

StackOverflow https://stackoverflow.com//questions/23042630

문제

created_at를 통해 데이터베이스에 필드가 하나 더 있고 updated_atTIMESTAMP 필드 이름이 날짜입니다.

이 필드가 탄소로부터 인스턴스화되기를 원했기 때문에 eLoent의 메소드를 웅변으로 덮어 씁니다.

public function getDates()
{
   return ['date','created_at','updated_at'];
}
.

그러나 데이터베이스에 새 레코드를 만들 때 나에게 예외를 던지십시오 :

InvalidArgumentException 예기치 않은 데이터가 발견되었습니다.예기치 않은 데이터가 발견되었습니다. 예기치 않은 데이터가 발견되었습니다.

PS : 양식에서 전송 된 값은 EU 형식입니다 : getDates()

이 문제를 어떻게 알 수 없습니다. 어떤 제안을 알 수 없습니다

도움이 되었습니까?

해결책

GetDate에서 반환 된 배열은 Dafault 하나의 결과로 병합되었습니다 :

['created_at','updated_at','deleted_at','date','created_at','updated_at'];
.

그래서 그곳에 만 '날짜'만 사용해야하며 괜찮을 것입니다.


'date'에 대한 mutator를 설정하여 데이터를 입력에서 타임 스탬프 형식으로 변환하십시오. 당신이 얻는 오류는 웅변적이지만 탄소가 아닙니다.

public function setDateAttribute($value)
{
    $this->attributes['date'] = Carbon\Carbon::createFromFormat('d-m-Y h:i', $value);
}
.

또한 GetDate가 mutator가 아닌 날짜 접근자를 정의하기 때문에 문서에 실수가 있습니다 ..

다른 팁

시도 :

Carbon::createFromFormat('d.m.Y H:i', $request->publishdate);    
.

"D-M-Y H : I"형식을 사용할 수 없습니다

다음 중 하나를 사용해야합니다 : 유닉스 타임 스탬프, 날짜 문자열 (Y-M-D), 날짜 시간 문자열, DateTime / Carbon 인스턴스

https://laravel.com/docs/4.2/eloquent#accessors-및 핵심자

일년에 오래된 문제가 있지만, 뮤 네이터를 설정 한 후에도 여전히 고군분투하는 사람을 위해 내 입력을 배치하고 있습니다.

HTML 입력 날짜 요소가 Atom Format (1975-12-25T14 : 15 : 16-05 : 00)의 날짜를 전달하면 Date NeTator가 도움이되지 않습니다.일을 얻으려면 일을 얻으려면 \ database \ eLoquent \ Model 클래스에서 다음 수정 프로그램을 적용해야합니다.

$value = Carbon::createFromFormat($format, (new DateTime($value))->format('Y-m-d H:i:s'));
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top