I have two tables news
and images
. These two tables have one-to-many relationship (one being news). I’m trying to make a factory on images, but right after I migrate with seed, the image saved to news directory but after one second it got deleted, and the path on the database returns news
. I’ve read this question but laravel 8.4 (my current laravel project) uses phpfaker, so I guess it’s now deprecated.
ImageFactory.php file
<?php namespace DatabaseFactories; use AppModelsImage; use IlluminateDatabaseEloquentFactoriesFactory; class ImageFactory extends Factory { /** * The name of the factory's corresponding model. * * @var string */ protected $model = Image::class; /** * State dari gambarnya, * pilih satu [news, packages, destinations] */ public function news() { return $this->state(function (array $attributes) { return [ 'role' => 'news', ]; }); } public function packages() { return $this->state(function (array $attributes) { return [ 'role' => 'packages', ]; }); } public function destinations() { return $this->state(function (array $attributes) { return [ 'role' => 'destinations', ]; }); } /** * Define the model's default state. * * @return array */ public function definition() { return [ 'path' => 'news' . '/' . $this->faker->image(storage_path('app/public/news'), 2000, 1500, null, false), ]; } }
storage/app/public
and storage/app/public/news
has .gitignore
file. I don’t know if this is relevant or not, because my colleagues migrate the seed without any issues.
Advertisement
Answer
Referring to this comment, you just need to go to Images.php
file on vendor PHPFaker and add these code
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
before $success = curl_exec($ch) && curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200;