Ich muss genau drei Seiten gleichzeitig über Formular speichern. Ich möchte in ähnlicher Weise speichern wie Modell speichern() -Methode, denn dies wird automatisch aktualisieren Zeitstempel.Laravel 5.2 mehrere Modell speichern()
Wie wird dies für mehrere Datensätze gleichzeitig getan?
Meine Seite Modell:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Page extends Model{
protected $table = 'simple_pages';
}
Mein Code:
public function createPages(Request $request){ // I use Page at the top
$data = [
[
'title'=> $request->first,
'content'=> $request->firstCont
],[
'title'=> $request->second,
'content'=> $request->secondCont
][
'title'=> $request->third,
'content'=> $request->thirdCont
]
];
Page::unguard();
$pages = new Page($data);
$pages->save(); // Something like this would be amazing
Page::reguard();
}
Hinweis: Ich bin stark gegen mehrere Instanzen Seite Modells, und dann Schleife sie um sie einzeln zu retten. Außerdem möchte ich DB-Einfügung nicht verwenden, weil es Rekordzeitstempel nicht automatisch aktualisiert.
Vielen Dank für Antwort hinzuzufügen. Ich habe bereits offizielle Dokumente gelesen, aber das hat mir keine Hilfe gebracht. Page :: create ($ data) erzeugt eine Exception (preg_match() erwartet, dass Parameter 2 ein String ist, ein Array ist gegeben); Ich habe auch versucht, Page :: create ([... first ....], [... second ....], [... third ....]), aber es fügt nur einen leeren Datensatz ein Datenbank, was ich nicht erreichen möchte. – Fusion
Aber wenn Ihre Spalten nicht in 'protected $ fillable = []' aufgeführt sind, funktioniert es nicht. Wenn Sie '$ fillable' gesetzt haben und Ihre Arrays gesetzt sind, müssen Sie sicherstellen, dass Ihre Werte tatsächlich Strings und keine Arrays sind. d. h. $ request-> first' und '$ request-> firstCont' – ash
Ich habe die Model Unguard() und Reguard() -Modellmethoden verwendet. Daher sollte das bewachte/befüllbare hier kein Problem sein (oder ist es das? - Wenn es ein Problem wäre, würde Laravel eine Massenzuordnungsausnahme auslösen). Ich bin mir 100% sicher, über den Inhalt meiner Anfragen. Ich habe vor kurzem mit dd() überprüft. Alle sind Saiten. – Fusion