Как решить проблему с именем на семена с помощью фейера Laravel 6 - PullRequest
0 голосов
/ 02 октября 2019

Я создаю таблицу, эту таблицу с именем book

Я создаю сеялку для добавления данных в таблицу, в этой таблице есть запрос, подобный этому.

public function run()
{
    $books = [];
    $faker = Faker\Factory::create();
    $image_categories = ['abstract', 'animals', 'business', 'cats',
    'city', 'food',
    'nature', 'technics', 'transport'];
    for($i=0;$i<25;$i++){
      $title = $faker->sentence(mt_rand(3, 6));
      $title = str_replace('.', '', $title);
      $slug = str_replace(' ', '-', strtolower($title));
      $category = $image_categories[mt_rand(0, 8)];
      $cover_path = 'C:\xampp\htdocs\larashop-api\public\images\books';
      $cover_fullpath = $faker->image( $cover_path, 300, 500,
      $category, true, true, $category);
      $cover = str_replace($cover_path . '/' , '', $cover_fullpath);
      $books[$i] = [
    'title' => $title,
    'slug' => $slug,
    'description' => $faker->text(255),
    'author' => $faker->name,
    'publisher' => $faker->company,
    'cover' => $cover,
    'price' => mt_rand(1, 10) * 50000,
    'weight' => 0.5,
    'status' => 'PUBLISH',
    'created_at' => Carbon\Carbon::now(),
    ];
    }
    DB::table('books')->insert($books);
        }

this Данные как заголовок, slug и все данные успешно вводятся в базу данных, но эта покрывает , и я создаю папку в public / images / books для сохранения изображения. и его работа, но это имя изображения не является действительным .

, например, в моей папке мое имя изображения: qwertyuiop.jpg

, но вимя базы данных: C: \ xampp \ htdocs \ larashop-api \ public \ images \ books \ qwertyuiop.jpg

Я думаю, что это ошибка и выдаст ошибку. как я могу решить это>

1 Ответ

0 голосов
/ 02 октября 2019

Вы можете получить имя изображения из $cover_fullpath, распаковав его:

$cover_path = 'C:\xampp\htdocs\larashop-api\public\images\books';
$cover_fullpath = $faker->image( $cover_path, 300, 500,$category, true, true, $category);
// after above code add this line so in cover_path you will have only image name
$cover_path = explode("\\",$cover_fullpath)[0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...