3. Llenar con datos falsos la bbdd de un blog
11 comentarios
Inicia sesión para comentar
Comentarios:
-
Steven Ortiz hace 5 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 5 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 1 año
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 1 año
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 1 año
Cómo solucionaste jjj?
-
Leenh Alexander Bustamante Fernandez hace 1 año
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.
-
-
Jose Quijado hace 2 años
Al directorio se le deben dar permisos, con chmod(). Debajo de Storage::makeDirectory('posts'); yo pongo chmod('storage/app/public/posts/', 0777);
-
Jhan Sebastian Vega hace 2 años
Holaa.. He ido a youtube y al inicio las imagenes me las guardaba solo como post/ en la base de datos.. Luego pude corregirlo pero al momento de que me va creando las imagenes me las va eliminando.. Ya he puesto las lineas que decias y todo eso pero sigo con el mismo error
-
Victor Arana Flores hace 2 años
Hola estimado, Faker esta dando problemas. Te sugiero que veas otras formas de descargar imagenes para hacer pruebas.
-
Jairo Andrés Grajales Salinas hace 2 años
Mira esté link (https://stackoverflow.com/questions/71167969/cant-generate-faker-image-in-laravel), ahí encuentras la respuesta
-