Ich versuche Einheiten Massen Zuordnung Eloquent-Funktion zu erstellen ...Leere Zeichenfolge statt NULL-Werte Eloquent
$new = new Contact(Input::all());
$new->save();
Das Problem ist, dass diese Art und Weise, die jedes Feld mit einem leeren String ausgefüllt statt null
Werte wie ich es erwartet habe.
Ich entwickle zur Zeit das System und noch einige Tabelle columns're nicht definiert, deshalb diese Methode verwenden, um zu verhindern jedes neues Feld $fillable
Array hinzufügen und zu einem new Contact(array(...));
...
Auch ich ve rund 20 Felder in dieser Tabelle, so Es wäre ein bisschen hässlich sein, einen Array zu haben wie
$new = new Contact(array(
'salutation' => Input::get('salutation'),
'first_name' => Input::get('first_name'),
'last_name' => Input::get('last_name'),
'company_id' => Input::get('company_id'),
'city' => ...
...
));
Irgendwelche Tipps, wie diese oder beheben zu tun?
Update Inzwischen habe ich dies aussortiert die Array_filter im App::before()
Filter tun.
Update Im Filter war ein bisschen Durcheinander. Ich am Ende mache:
public static function allEmptyIdsToNull()
{
$input = Input::all();
$result = preg_grep_keys ('/_id$/' , $input);
$nulledResults = array_map(function($item) {
if (empty($item))
return null;
return $item;
}, $result);
return array_merge($input, $nulledResults);
}
Und in meiner functions.php.
Jetzt nur noch mit Feldern arbeiten, die mit "_id" enden. Dies ist mein größtes Problem, als ob eine Beziehung nicht NULL
ist, die Datenbank wird einen Fehler werfen, da der Fremdschlüssel "" nicht gefunden werden kann.
Funktioniert perfekt. Jeglicher Kommentar?
Setzen Sie das in eine Zeile ... 'Kontakt :: create (Input :: all())' ftw. –
Erhalte ich auf diese Weise nicht die leeren Werte? Ich denke, es macht das selbe Zeug wie '$ new = new Contact (Input :: all());' –