Stellen Sie sicher, dass Sie an übergeben Array von Arrayskein Parameter des Arrays.
UPDATE, können Sie verwenden Model::insert() obwohl nach dem, was ich gelesen habe, diese Methode die Zeitstempel nicht erstellt/aktualisiert.
Diese Antwort war für eine frühere Version von Laravel, leider bin ich nicht mehr auf dem neuesten Stand und nicht sicher, wie dies in der neuesten Hauptversion geschehen soll. Ich würde mich freuen, wenn jemand dies tatsächlich aktualisieren würde, wenn dies jedoch einen Mehrwert bringt.
– Wiegen
3. November 2020 um 1:10 Uhr
Aufruf der undefinierten Methode App\Models\Post::createMany() , Version 8 von Laravel
– Waleed Khaled
19. September 2021 um 18:40 Uhr
Model::insert() funktioniert auf Laravel 7
– Benutzer3613026
6. Oktober 2021 um 13:57 Uhr
laravel.com/docs/9.x/eloquent-relationships#the-create-method Dieser Ratschlag funktioniert nicht für Version 9 oder eine frühere Laravel-Version. Laut der offiziellen Laravel-Dokumentation erstellt die Methode createMany() “mehrere verwandte Modelle”, was bedeutet, dass sie nur mit verwandten Modellen funktioniert, nicht direkt mit dem Modell, wie oben beschrieben.
– Azurkorn
9. Dezember 2022 um 1:07 Uhr
Ganesh Ghalame
Sie können einfach Eloquent::insert() verwenden Verknüpfung wie nachstehend:
Das Problem mit oben ist, dass Zeitstempel nicht aktualisiert werden, Beispiele finden Sie hier
Notiz: Model::insert() speichert nicht created_at und updated_atalso sollten Sie sie bei Bedarf selbst hinzufügen.
– Hasan Alyazidi
20. Januar 2022 um 10:41 Uhr
Ruberandinda Geduld
Die Create-Many-Methode createMany ist auf Beziehungsprüfungsreferenz zu diesem Link und diesem verfügbar Dokumentation von laravel
Bisher sieht mein Beispiel so aus.
Ich habe zwei Modelle Pricing und AvailableService Modell
Preismodell
namespace App;
use Illuminate\Database\Eloquent\Model;
class Pricing extends Model
{
protected $fillable = ["name", "price"];
public function available(){
return $this->hasMany(AvailableService::class, "pricing_id", "id");
}
}
Und der AvailableServiceMode sieht aus wie das
namespace App;
use Illuminate\Database\Eloquent\Model;
class AvailableService extends Model
{
protected $fillable = ["pricing_id", "service_id"];
public function service(){
return $this->belongsTo(Service::class, "service_id", "id");
}
}
Und es funktioniert, Sie können es auch versuchen. DANKE
Erstellen Sie viele Werke, aber es werden immer noch zu viele SQL-Abfragen ausgeführt. Gibt es so etwas wie Insert für Relationen?
– Puschkraj Jori
23. Dezember 2022 um 16:12 Uhr
Wenn Sie mehrere Datensätze im Seeder speichern möchten, verwenden Sie stattdessen diese Methode insert weil ich in meinem Fall automatisch erstellte Slugs verwenden möchte spatie/laravel-sluggable pkg. Wenn Sie die verwendet haben insert oder DB Technik dann müssen Sie den Wert für angeben slug Feld auch.
Falls jemand nach einem eloquenten Modell sucht, habe ich die folgende Methode verwendet:
foreach($arCategories as $v)
{
if($v>0){
$obj = new Self(); // this is to have new instance of own
$obj->page_id = $page_id;
$obj->category_id = $v;
$obj->save();
}
}
$obj = new Self(); ist ein Muss, sonst speichert es nur einen einzigen Datensatz, wenn $this wird genutzt.
nurzzzone
Erstellen Sie im Seeder ein Array und führen Sie foreach mit Model::create() aus. Alle Ihre Aufzeichnungen werden mit Zeitstempeln versehen
protected $array = [
[...],
[...],
[...]
];
public function run()
{
foreach ($this->array as $value) {
Model::create($value);
}
}
14403100cookie-checkSpeichern mehrerer Datensätze in einem eloquenten Laravel-Createyes