Geoff
Estoy tratando de guardar varios registros a través de
AppSettings::create(
[
'name' => 'mail_host',
'type' => $emailsettingstype->id,
'value' => '',
],
[
'name' => 'mail_port',
'type' => $emailsettingstype->id,
'value' => '',
],
[
'name' => 'mail_username',
'type' => $emailsettingstype->id,
'value' => '',
],
);
Pero a partir de lo anterior, solo se crea la primera matriz. ¿Dónde me estoy equivocando? Cualquier ayuda es apreciada.
Wreigh
Creo que esto debería hacer
AppSettings::createMany([
[
'name'=>'mail_host',
'type'=>$emailsettingstype->id,
'value'=>'',
],
[
'name'=>'mail_port',
'type'=>$emailsettingstype->id,
'value'=>'',
],
[
'name'=>'mail_username',
'type'=>$emailsettingstype->id,
'value'=>'',
],
]);
Asegúrate de estar pasando un matriz de matricesNo un parámetros de matriz.
ACTUALIZAR, puedes usar Model::insert()
aunque según lo que he leído, ese método no crea/actualiza las marcas de tiempo.
-
Esta respuesta fue para una versión anterior de Laravel, desafortunadamente, ya no estoy actualizado y no estoy seguro de cómo se debe hacer esto en la última versión principal. Apreciaría si alguien realmente actualizara esto, aunque eso agrega algún valor.
– Wreigh
3 de noviembre de 2020 a las 1:10
-
Llamada al método no definido App\Models\Post::createMany() , Versión 8 de laravel
–Waled Khaled
19/09/2021 a las 18:40
-
Model::insert() funciona en Laravel 7
– usuario3613026
6 oct 2021 a las 13:57
Ganesh Ghalame
Puedes simplemente usar Eloquent::insert() Enlace como a continuación:
AppSettings::insert([
[
'name'=>'mail_host',
'type'=>$emailsettingstype->id,
'value'=>'',
],
[
'name'=>'mail_port',
'type'=>$emailsettingstype->id,
'value'=>'',
],
[
'name'=>'mail_username',
'type'=>$emailsettingstype->id,
'value'=>'',
],
]);
El problema con lo anterior es que no actualizará las marcas de tiempo, encuentre ejemplos aquí
-
Nota:
Model::insert()
no almacenacreated_at
yupdated_at
por lo que debe agregarlos usted mismo si es necesario.– Hasan Alyazidi
20 de enero a las 10:41
Ruberandinda Paciencia
El método Crear muchos createMany
está disponible en referencia de verificación de relación a este enlace y este documentación de laravel
hasta ahora mi ejemplo se ve así.
tengo dos modelos Pricing
y AvailableService
Modelo
Modelo de precios
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");
}
}
Y el AvailableServiceMode
se parece a esto
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");
}
}
Asi que createMany
la operación se ve así
$insertMany = Pricing::create(['name'=>request('name')]);
$insertMany->available()->createMany([
['service_id'=>1],
['service_id'=>2],
['service_id'=>3],
['service_id'=>4],
['service_id'=>5],
]);
Y funciona, tú también puedes intentarlo. GRACIAS
Si desea almacenar varios registros en la sembradora, use este método en lugar de insert
porque en mi caso quiero slug creado automáticamente usando spatie/laravel-sluggable
paquete Si usaste el insert
o DB
técnica entonces tienes que dar el valor para slug
campo también.
CategoríaSembradora
<?php
namespace Database\Seeders;
use App\Servcategory;
use Illuminate\Database\Seeder;
class CategorySeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$categories = [
[
'name' => 'Automotive',
// 'slug' => 'automotive',
],
[
'name' => 'Business Services',
// 'slug' => 'business-services',
],
[
'name' => 'Computer, Telecom & IT Services',
// 'slug' => 'computer-telecom-&-it-services',
],
[
'name' => 'Education & Training',
// 'slug' => 'education-&-training',
],
[
'name' => 'Finance',
// 'slug' => 'finance',
],
[
'name' => 'Hospitals, Clinic, Medical',
// 'slug' => 'hospitals-clinic-medical',
],
[
'name' => 'Real Estate, Construction, Property',
// 'slug' => 'real-estate-construction-property',
],
[
'name' => 'Travel,Toursim & Hotels',
// 'slug' => 'travel-toursim-&-hotels',
],
];
// Servcategory::insert($categories);
collect($categories)->each(function ($category) { Servcategory::create($category); });
}
}
justnajm
En caso de que alguien busque un modelo elocuente, utilicé el siguiente método:
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();
es obligatorio, de lo contrario, solo guarda un registro único cuando $this
se usa
nurzzzone
en seeder crea una matriz y haz foreach con Model::create(). Todos sus registros estarán con marcas de tiempo
protected $array = [
[...],
[...],
[...]
];
public function run()
{
foreach ($this->array as $value) {
Model::create($value);
}
}