Domanda

Ho un altro campo sul database tramite created_at e updated_at come TIMESTAMP Il nome del campo è data.

Così ho sovrascritto il metodo getDates() sul mio modello Eloquente perché volevo che il campo sia istanziato da carbonio.

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

Ma quando vado a creare un nuovo record sul database mi lancia un'eccezione:

.

InvalidARGUMENTOException Dati imprevisti trovati.Dati imprevisti trovati. Dati imprevisti trovati.

PS: il valore inviato dal modulo è in formato UE: d-m-Y h:i

Non so come capire questo problema qualsiasi suggerimento è apprezzato

È stato utile?

Soluzione

L'array è stato restituito da GetDates è stato fuso con la DAFAULT uno con conseguente:

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

Quindi usa solo 'Data' lì e dovrebbe andare bene.


.

Prova a impostare un mutatore per 'Data' per convertire i dati da Input in TimeStamp Formato. L'errore che ottieni non è su eloquente ma carbonio.

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

Inoltre c'è un errore nei documenti, poiché GetDates definisce gli accessori della data, non i mutatori ..

Altri suggerimenti

Prova questo:

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

Non puoi usare il tuo formato "D-M-Y H: I"

È necessario utilizzare uno di questi: UNIX Timestamp, Data String (Y-M-D), String Data-Time, DateTime / Istance di carbonio

https://laravel.com/docs/4.2/eloquent#accessori-e-mutator

Anche se il suo problema di un anno e sto mettendo il mio contributo per chiunque abbia ancora lottato anche dopo aver impostato il mutatore.

Se l'elemento Data di ingresso HTML passa la data in formato Atom (1975-12-25T14: 15: 16-05: 00) Quindi il mutatore della data non aiuterà.È necessario applicare la seguente correzione in Illuminate \ database \ Eloquent \ Model Class at Line # 2848 per farla funzionare (a Laravel # 5).

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top