Это видео недоступно.
Сожалеем об этом.

Laravel курс с нуля, база. 28. Классы Factory и Seed в Laravel

Поделиться
HTML-код
  • Опубликовано: 5 май 2021
  • Стань спонсором(бусти аккаунт), доступ к собеседованиям:
    boosty.to/lara...
    Мои платные курсы:
    laravelcreativ...
    План развития с нуля до middle+:
    laravelcreativ...
    Группа вк:
    laravel...
    - Ссылка для донатов, спонсорства, пожертвований
    yoomoney.ru/to...
    www.donational...
    - -
    . ---
    . .

Комментарии • 59

  • @Doston_T
    @Doston_T 6 месяцев назад +2

    как же я был рад посмотрев этот урок, надоело уже писать все это вручную

  • @gangster_dude
    @gangster_dude 2 года назад +17

    Хочу оставить свою благодарность автору видео
    Отсмотрел последовательно штук 40 уроков. Ни на что не надеялся. По факту для меня это самые классные уроки оказались из всей кучи просмотренного. Причем я не хочу принижать заслуги других каналов - есть немало отличных образовательных видосов. А этот канал таков, что классные тут все, т.е. массовых знак качества
    Кроме очевидных плюсов, которые наверняка отметили другие зрители, я хочу особо отметить то, что самое ценное для меня - автор показывает, какие техники кодинга НЕ надо применять, и какие надо, и объясняет почему. ВОТ ЭТО Я ДАВНО искал - инфу из практического опыт работы за деньги
    Автору искренняя благодарность, буду смотреть и учиться остальные штук 80 видосов, заканчивая производством магазина, хоть VUE мне нафиг не нужен

    • @andrewlevitsky6270
      @andrewlevitsky6270 Год назад

      Привет! Как дела у тебя, устроился на роботу?

    • @gangster_dude
      @gangster_dude Год назад +1

      @@andrewlevitsky6270 нет, я даже не пытался. Пришлось на много месяцев прекратить образовательный процесс, у нас тут пиздец настал, снаряды начали летать и взрываться...
      Недавно опять начал учиться кодить. И кстати мне донесли важную вещь - так учиться неправильно и глупо. Надо поставить себе задачу - сделать написать небольшой интернет магазин, в образовательных целях. Когда сделал - значит готов идти работать.
      Вот этим и занимаюсь, причем с удовольствием. Так значительно больше мотивация
      P.S. Бро, а ты кто ? :))

    • @andrewlevitsky6270
      @andrewlevitsky6270 Год назад

      @@gangster_dude ООО, я тоже из Украины, а именно Киев ))
      Тоже первые пару месяцев было шумновато, а потом осенью блекауты, все против меня

    • @gangster_dude
      @gangster_dude Год назад

      @@andrewlevitsky6270 блэкауты я помню, романтика блин :) У меня в город наприлетало много, и в мой микрорайн, и в соседний дом и тд.... страшно вспоминать
      А блэкауты закончились 9 марта.
      Что там у вас с наводнениями, плаваете еще ?

  • @spitzer4077
    @spitzer4077 Год назад +9

    Небольшой казус восприятия инфы..
    Урок 19, 7:24 - в модели Post в методе tags() фигурирует таблица post_tags
    Урок 24 - удалены старые модели, напрямую создана таблица post_tag...
    Урок 25 - Автор "вернул всё так как оно и было", не уточнив осталось ли что-то с 24-го урока, в Post.php "было" post_tags, а после "вернул всё как было" уже стало post_tag, и это выпало из внимания
    Урок 28 - Выполняем php artisan migrate:fresh --seed (таблица уже post_tag) и оно ругается что нет такой таблицы post_tags, а её блин и не должно быть, но она осталась прописана в модели Post.php, а то ругалось на ошибку SQLSTATE[42S02]: Base table or view not found: 1146 Table 'first_project.post_tags' doesn't exist и не хотело кушать миграцию...
    Мораль басни. Откаты дело нехитрое, понять можно по всякому.

    • @sezamiti
      @sezamiti Год назад

      Яро плюсую)

  • @Mihail_Litvincev
    @Mihail_Litvincev 2 года назад +10

    Давно меня мучило это страшное слово "фабрика"! Спасибо, что как всегда, очень доступно и наглядно объяснил!))

    • @laravelcreative
      @laravelcreative  2 года назад

      Да, ничего сложного) Благодарю!)

  • @anazkomult
    @anazkomult Год назад

    Офигенный инструмент эти фабрики. Их осваивать нужно как можно быстрее, сэкономит в будущем тонны времени при дальнейшей учебе.
    Автору спасибо за уроки!

  • @vimitali7630
    @vimitali7630 2 года назад +2

    Спасибо, за урок! Очень крутая и простая подача материала!

  • @vsbukhan4570
    @vsbukhan4570 5 месяцев назад +1

    для Laravel 10:
    return [
    'title'=>fake()->title(20),
    'content'=>fake()->text(30),
    'image'=>fake()->imageUrl(),
    'likes'=>random_int(1,200),
    'is_published'=>1,
    'category_id'=>Category::get()->random()->id,
    ];

  • @alexgud6467
    @alexgud6467 2 года назад +4

    ура, больше не придется для тестов вручную вводить кучу данных!😄

  • @user-yj8eu8ip8j
    @user-yj8eu8ip8j Год назад +3

    В сидере сделал так, чтобы случайное количество тегов прикреплялось:
    Category::factory(21)->create();
    $tags = Tag::factory(37)->create();
    $posts = Post::factory(98)->create();
    $posts->map(function ($post) use ($tags) {
    $tagsCount = random_int(1, 9);
    $tagsForPostIds = $tags->random($tagsCount)->pluck('id');
    $post->tags()->attach($tagsForPostIds);
    });

  • @SergiiBoiko
    @SergiiBoiko 2 года назад +2

    Отличный урок!

  • @maven2424
    @maven2424 Год назад +1

    Супер полезно Laravel, спасибо!

  • @dimanamumchak5370
    @dimanamumchak5370 3 года назад +2

    отличный урок!

  • @Olegcowboyoleg
    @Olegcowboyoleg 5 месяцев назад +1

    У автора на 1:33 прям явно в списке - db:seed.

  • @evgeniidianov164
    @evgeniidianov164 3 года назад +4

    Погуглил я немного, так как захотелось более реальные изображения. Можно делать так
    'image' => $this->faker->imageUrl(200, 150,'cats')
    Но жалко, что меняется только надпись

  • @user-nk8wq4sx1x
    @user-nk8wq4sx1x 2 года назад +3

    Все работает, только не ясно почему в уроке таблица post_tag заполнилась, а у меня нет? У меня пишет ошибку " SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'tag_id' cannot be null"

  • @ozodjonesanov4511
    @ozodjonesanov4511 2 года назад

    Спасибо за отличный урок! 😊

  • @alexandr9900
    @alexandr9900 2 года назад +2

    камент для продвижения

  • @user-ue1sh5vr9v
    @user-ue1sh5vr9v Год назад

    Спасибо большое!!!!

  • @user-qn6bo7eg8z
    @user-qn6bo7eg8z Год назад +1

    Если у вас ошибка "Call to undefined method App\Post::factory()" и если в классе Post нет метода HasFactory, то попробуйте это: $posts = factory(Post::class)->times(10)->make();

  • @sergeyromanov1920
    @sergeyromanov1920 Год назад

    Спасибо за урок, как же быстро можно оказывается данных накидать. Особенно с тэгами интересно.

  • @SR-gc8yk
    @SR-gc8yk Год назад

    Привет Спасибо за урок. Тут у меня такой ошибка Argument '1' passed to random() is expected to be of type Closure|null, int given

  • @Dmitry_RS
    @Dmitry_RS 2 года назад +1

    Все работает, но один вопрос, как Laravel понимает какую фабрику куда нужно использовать? Ведь нет никакой связки между DatabaseSeeder и TagFactory например, чисто по имени файла понимает?
    Например Tag::factory(20)->create() - у меня скажем 10 фабрик, как он понял что нужно юзать именно TagFactory? В model/Tag тоже нет связки между им и TagFactory

    • @sv2109
      @sv2109 Год назад +1

      Тоже стало интересно как оно там работает внутри, покопался в коде,
      и так.
      в модели мы прописываем use HasFactory; чтобы использовать методы фабрики, напр. factory()
      в этом методе есть код (упрощаю)
      $factory = Factory::factoryForModel(get_called_class());
      в методе factoryForModel
      $factory = static::resolveFactoryName($modelName);
      и в resolveFactoryName такой код
      return static::$namespace.$modelName.'Factory';
      то есть берется название модели и к нему прибавляется 'Factory' получаем название фабрики, которую и нужно использовать.
      Вот она, магия ларавел))) Подозреваю что тут многие вищи работают подобным образом, просто нужно придерживаться определенных правил наименования и фреймворк многие вещи сделает сам.

  • @krakanosh
    @krakanosh Год назад

    Все записи с категориями добавились, кроме кроме таблицы post_tags, она пустая. Вылетела ошибка Call to undefined method App\Models\Post::tag() Что с этим делать? UPD: потерял 1 букву в названии функции)) Но интересно что PHPstorm не подсветил ошибку, а наоборот подсветил ее когда я изменил название функции на правильное)))

  • @user-jb9ul8hi6o
    @user-jb9ul8hi6o 2 года назад

    Спасибо за урок. Пошагово все разжевали) Сделал немного по другому. Через ModelSeeder и тут как раз пригодилась модель PostTag. Сгенерировал кол-во постов и тегов перемножил их для count(). Но в базу добавилось только 1000 записей, а по факту у меня 2250. База SQLite. Это где-то ограничение стоит или особенности данной базы? И вообще можно ли так делать? или правильнее будет как в уроке генерировать таблицу PostTag?

    • @laravelcreative
      @laravelcreative  2 года назад

      Можно делать как угодно, если это работает и отвечает требованиям безопасности и экономности ресурсов) В данном случае, требования никаких не было) Так что можно:) По поводу ограничений, точно не скажу) Но sqlite в рабочих проектах лучше не использовать) Только в качестве обучения азам

  • @user-nk8wq4sx1x
    @user-nk8wq4sx1x 2 года назад +1

    Местная фабрика имеет отношение к одноименному паттерну?! Вообще тему паттернов неплохо было бы сюда подтянуть, так как в ларавел их используется много.

    • @laravelcreative
      @laravelcreative  2 года назад

      Имеет, но реализовано под модели laravel. Паттерны можно, но потом:)

  • @tolik8
    @tolik8 Год назад

    фабрика это Factorio ))

  • @user-nh9ek4gb2q
    @user-nh9ek4gb2q 2 года назад +2

    seeder = сеятель

  • @user-ji3hj2jj1p
    @user-ji3hj2jj1p Год назад +1

    у кого Laravel 9 вместо $this->faker-> надо использовать fake()->

  • @SuperTRISTAN888
    @SuperTRISTAN888 2 года назад

    Не понятно все равно каково практическое применение, что в редакторе заполнять, что в базе как бы невилика разница по объему труда

    • @user-ns2fn6pg9d
      @user-ns2fn6pg9d Год назад +2

      Ты что, дурак? Ты условно сделаешь новую миграцию, обновишь их и все изменения в таблице сбросятся. Если у тебя есть фабрика, тебе достаточно запустить одну команду. А если таким обновлений с миграциями будет много, ты будешь каждый раз заполнять вручную таблицы? А если для тестировки нужно 5000-10000 тысяч постов. Прям смешно

  • @alexandriv2174
    @alexandriv2174 2 года назад +1

    все там было вы проморгали артисан db:seed

  • @gravityarm9240
    @gravityarm9240 2 года назад

    Can you give source code your tutorials ?

  • @user-fw4vd6ry4i
    @user-fw4vd6ry4i 3 года назад

    Доброго времени суток, подскажите, пожалуйста... Когда прописываю use HasFactory, выдает - " Undefined type 'Illuminate\Database\Eloquen\Factories\HasFactory' ", при этом путь вверху указан. Полазил по интернету, так ничего и не нашел. Буду благодарен за помощь

    • @laravelcreative
      @laravelcreative  3 года назад

      Привет! А где ты прописываешь? то есть у тебя изначально этого не было?

    • @user-fw4vd6ry4i
      @user-fw4vd6ry4i 3 года назад

      @@laravelcreative да, изначально не было. В классе модели

    • @laravelcreative
      @laravelcreative  3 года назад

      @@user-fw4vd6ry4i когда прописываешь use HasFactory, подсвечивается желтым, что типа нет импорт? Уверен, что ругается именно на это use hasfactory, а не где-то еще?

    • @user-fw4vd6ry4i
      @user-fw4vd6ry4i 3 года назад

      @@laravelcreative Ругается конкретно на это, импорт есть.

    • @laravelcreative
      @laravelcreative  3 года назад

      @@user-fw4vd6ry4i сделай скрин;-)