3. Llenar con datos falsos la bbdd de un blog
13 comentarios
Inicia sesión para comentar
Comentarios:
-
Kevin Sayago Rosales hace 1 semana
Me pone el siguiente error, voy en el min 30:40:
Dropping all tables ......................................................................... 230.67ms DONEINFO Preparing database.
Creating migration table ..................................................................... 17.41ms DONE
INFO Running migrations.
0001_01_01_000000_create_users_table ........................................................ 102.52ms DONE
0001_01_01_000001_create_cache_table ......................................................... 28.24ms DONE
0001_01_01_000002_create_jobs_table .......................................................... 88.40ms DONE
2025_01_16_002935_add_two_factor_columns_to_users_table ...................................... 26.84ms DONE
2025_01_16_003248_create_personal_access_tokens_table ........................................ 52.74ms DONE
2025_01_16_014909_create_categories_table .................................................... 14.78ms DONE
2025_01_16_015430_create_posts_table ........................................................ 176.38ms DONE
2025_01_16_020222_create_tags_table .......................................................... 16.59ms DONE
2025_01_16_020550_create_post_tag_table ..................................................... 155.64ms DONE
2025_01_17_005400_create_images_table ........................................................ 14.20ms DONE
INFO Seeding database.Database\Seeders\UserSeeder ....................................................................... RUNNING
Database\Seeders\UserSeeder ................................................................... 751 ms DONE
BadMethodCallExceptionCall to undefined method App\Models\Category::factory()
at vendor\laravel\framework\src\Illuminate\Support\Traits\ForwardsCalls.php:67
63▕ * @throws \BadMethodCallException
64▕ */
65▕ protected static function throwBadMethodCallException($method)
66▕ {
➜ 67▕ throw new BadMethodCallException(sprintf(
68▕ 'Call to undefined method %s::%s()', static::class, $method
69▕ ));
70▕ }
71▕ }1 vendor\laravel\framework\src\Illuminate\Support\Traits\ForwardsCalls.php:36
Illuminate\Database\Eloquent\Model::throwBadMethodCallException("factory")2 vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php:2368
Illuminate\Database\Eloquent\Model::forwardCallTo(Object(Illuminate\Database\Eloquent\Builder), "factory") -
Ed hace 2 semanas
Yo tengo problemas con las imagenes no se descargaban y lo solucione con este link https://dev.to/cybert22/crea-imagenes-elegantes-de-prueba-en-laravel-alternativas-a-fakerphp-57gm
-
Steven Ortiz hace 8 meses
Víctor es normal que aveces no se guarde o se cargue el total de imágenes te consulto porque en la tabla images se guardo una que otra URL por ejemplo posts/0e4d1c7e18a1bf5ceef0ac59ce779fce.png pero otras si no se cargaron si no que solo se cargo esto posts/ … ves unas si las cargo otras no es normal que falle la carga
-
Victor Arana Flores hace 7 meses
Hola Steven, a veces falla el servidor de imagenes que usa faker
-
-
Jose hace 1 año
Me continua dando el error de que no se puede crear e directorio posts. No se si con esto que dejo podrias decirme por donde va el error xq añadi las lineas que pusiste “use Illuminate\Support\Facades\Storage;” en DatabaseSeeder.
*****
Cannot write to directory "public/storage/posts"
at vendor\fakerphp\faker\src\Faker\Provider\Image.php:128
124▕
125▕ $dir = null === $dir ? sys_get_temp_dir() : $dir; // GNU/Linux / OS X / Windows compatible
126▕ // Validate directory path
127▕ if (!is_dir($dir) || !is_writable($dir)) {
➜ 128▕ throw new \InvalidArgumentException(sprintf('Cannot write to directory "%s"', $dir));
129▕ }
130▕
131▕ // Generate a random filename. Use the server address so that a file
132▕ // generated at the same time on a different server won't have a collision.1 vendor\fakerphp\faker\src\Faker\Generator.php:696
Faker\Provider\Image::image("public/storage/posts")
2 vendor\fakerphp\faker\src\Faker\Generator.php:696-
Donmartín Works hace 1 año
yo uso L10, yo lo solucioné de la siguiente manera: en DatabaseSeeder cambie Storage::makeDirectory('posts'); => Storage::makeDirectory('public/posts');
-
Andres hace 1 año
tenia el mismo problema lo soluciones con tu respuesta, gracias.
-
Pablo Cs:go hace 1 año
Me pasó exactamente lo mismo, muchas gracias!
-
-
Sebastian Chinga hace 2 años
Hola Victor repasando este video mi pregunta es la siguiente, como hago para el siguiente caso:
Quiero almacenar imagenes de unos productos y de categorias, por lo tanto las imagenes de los productos se almacenaran en la carpeta public/storage/products y las imagenes de las categorias seran almacenadas en la carpeta public/storage/products/categories; osea las imagenes de los productos y las categorias en carpetas separadas. Logre crear la carpeta ‘products’ y dentro logre crear la carpeta ‘categories’. Ahora como hago para que las imagenes se almacenen en sus respectivas carpetas? Teniendo en cuenta que se trabaja con los factories y los seeders. Espero me responda la duda. Saludos.
-
Victor Arana Flores hace 2 años
Hola Sebastian. Deja tu duda en el grupo Coders Free https://www.facebook.com/groups/4314830498588670
-
-
Leenh Alexander Bustamante Fernandez hace 2 años
Las imágenes desaparecen, al hacer la migracion las imagenes parecen descargar pero luego desaraparecen, podrias ayudarme?
edite este comentario 3 veces jejej al final logre solucionar los problemas con las imagenes-
Hansb hace 2 años
Cómo solucionaste jjj?
-
Leenh Alexander Bustamante Fernandez hace 2 años
cambia la url de donde descargas la imagen
-
-
Crlos Nuñez hace 2 años
me arroja 2 problemas
C:\xampp\htdocs\blog\vendor\laravel\framework\src\Illuminate\Events\Dispatcher.php:252
Illuminate\Events\Dispatcher::Illuminate\Events\{closure}("eloquent.created: App\Models\User")2 C:\xampp\htdocs\blog\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasEvents.php:188
Illuminate\Events\Dispatcher::dispatch("eloquent.created: App\Models\User")-
Crlos Nuñez hace 2 años
Array callback must have exactly two elements
at C:\xampp\htdocs\blog\vendor\laravel\framework\src\Illuminate\Events\Dispatcher.php:424
420▕ if ($wildcard) {
421▕ return $listener($event, $payload);
422▕ }
423▕
➜ 424▕ return $listener(...array_values($payload));
425▕ };
426▕ }
427▕
428▕ /**
-
-
Danny Pascual Gomez Sanchez hace 2 años
Se puede hacer uso de la función imageUrl generando el parametro word aleatorio para no repetir imagenes. comparto la solición.
- En ImageFactory =>
public function createPostImage(){
return $this->faker->imageUrl(640, 480, 'business', true, $this->faker->word(5).' - Posts - @pascualdas');
}
public function createUserImage(){
return $this->faker->imageUrl(640, 480, 'people', true, $this->faker->word(5).' - Users - @pascualdas');
}
2. En UserSeeder =>
$users = User::factory(99)->create();
foreach ($users as $user){
$image = $imgGenerator->createUserImage();
Image::factory(1)->create([
'url' => $image,
'imageable_id' => $user->id,
'imageable_type' => User::class,
]);
}
Nota: Yo implemente imagenes para usuarios y posts.-
Victor Arana Flores hace 2 años
Genial. Gracias Danny
- En ImageFactory =>
-
Shakadabra hace 2 años
vendor\fakerphp\faker\src\Faker\Provider\Image.php
public const BASE_URL = 'https://placehold.jp'; // cambie la URL
Una vez abierto este archivo buscaremos en las lineas aprox 114 y agregaremos el siguiente codigo, tomemos como referencia el codigo existente
curl_setopt($ch, CURLOPT_FILE, $fp); //línea existente
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//nueva línea
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//nueva línea
$success = curl_exec($ch) && curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200;//línea existente-
Victor Arana Flores hace 2 años
Esta funcionando con esta solución amigo? Excelente aporte
-
Juan Oyanedel hace 2 años
Si, lo acabo de probar y funciona perfecto con la solución que indico @Shakadabra
-
Antonio Salcedo hace 2 años
Aunque en la consola empieza a salir un poco de símbolos raros cada vez que va creando, no sé si eso este bien o mal, pero si me funciono la solución a la perfección, muchas gracias fue de gran ayudar para proseguir, ya que aparte de que lo estoy haciendo el blog en Laravel del lado del frontEnd lo estoy aplicando con React y está algo complejo solucionar dos tipos de cosas jaja pero gracias
-
Andres hace 1 año
Con este cambio como quedo el archivo yo lo intente pero me da error en las líneas donde coloco el código.
-
-
Jose Quijado hace 2 años
Con el método fakes→image() se produce un fallo. Las imágenes se descargan, se graban en el directorio correspondiente, y se borran inmediatamente. Según se graban, se borran al momento. Por lo tanto, al terminar el proceso, el directorio de imágenes queda vacío. Además, al no quedar las imágenes almacenadas, en cada registro de la tabla images, en el campo url, queda el valor posts/, sin más, sin nombre de archivo. Por qué se produce eso? Según he leído en Internet, es un fallo de la clase Faker. He probado todo lo que indicas en tu video en YouTube, pero nada de eso resuelve el problema.
-
Victor Arana Flores hace 2 años
Así es estimado. La librería faker está fallando. Lo que queda es descargar las imagenes de manera manual.
-
Jose Quijado hace 2 años
Llevo todo el dia examinando este problema. En la clase Faker hay una comprobación como esta: $success = curl_exec($ch) && curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200; Se pretende que el valor de CURLINFO_HTTP_CODE sea 200, es decir, que la lectura se ha hecho correcta. En lugar de eso es 403 (Forbidden). Es decir, cuando la clase intenta acceder con cUrl a https://via.placeholder.com el servidor no autoriza el acceso. Así, no sé si realmente es un fallo de la clase Faker, o del servidor donde se generan las imágenes. De un modo u otro, el caso es que no funciona. Si te enteras de una solución alternativa, ponla aquí, por favor.
-
Victor Arana Flores hace 2 años
El año pasado el creador de faker indico que no daría más mantenimiento a la librería, y lamentablemente no quiso ceder el proyecto para que sea la misma comunidad la que se encargue de mantenerlo.
Laravel se encuentra en constante evolución, y por lo que faker se quedará totalmente obsoleta.
Por el momento lo que queda es esperar a que salga una nueva tecnología que reemplace a faker, y Laravel decida trabajar con ella, o quien sabe, que Laravel tome la iniciativa, y cree su propia librería.
-