Заполнить таблицу базы данных с помощью Laravel Faker из предварительно заполненной таблицы

Я хочу заполнить таблицу списками предложений автомобилей с фиктивными данными.

Особенность в том, что я хочу, чтобы марка и модель были из таблицы, уже созданной в базе данных. Также название листинга должно быть Делать и Модель. Мой код такой, но я предполагаю, что это совершенно неверно:

public function definition()
{
    $id = DB::table('cars')->select('id')->inRandomOrder()->first();
    $make = DB::table('cars')->where('id', $id)->select('make')->first();
    $model = DB::table('cars')->where('id', $id)->select('model')->first();

    return [
        'title' => $make . " " . $model,
        'make' => $make,
        'model' => $model,
        'year' => $this->faker->numberBetween(1950, 2021),
        'slug' => $this->faker->word(),
    ];
}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
16
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Конструктор запросов в Laravel возвращает объект, представляющий модель базы данных, когда вы выполняете выборку с помощью first().

Вы должны получить доступ к атрибутам, когда устанавливаете их как другие атрибуты модели.

return [
    'title' => $make->make . " " . $model->model,
    'make' => $make->make,
    'model' => $model->model,
    'year' => $this->faker->numberBetween(1950, 2021),
    'slug' => $this->faker->word(),
];

Примечание

Ответ выше только устраняет проблему в коде Текущий.

Правильная реализация - создать модели (если они еще не существуют) и связать их отношениями через внешние ключи, а затем соединить их вместе в сеялке.

Фабрика должна содержать только четкое и ясное определение поддельных данных.

Другие вопросы по теме