Это видео недоступно.
Сожалеем об этом.
Laravel курс с нуля, база. 28. Классы Factory и Seed в Laravel
HTML-код
- Опубликовано: 5 май 2021
- Стань спонсором(бусти аккаунт), доступ к собеседованиям:
boosty.to/lara...
Мои платные курсы:
laravelcreativ...
План развития с нуля до middle+:
laravelcreativ...
Группа вк:
laravel...
- Ссылка для донатов, спонсорства, пожертвований
yoomoney.ru/to...
www.donational...
- -
. ---
. .
как же я был рад посмотрев этот урок, надоело уже писать все это вручную
Хочу оставить свою благодарность автору видео
Отсмотрел последовательно штук 40 уроков. Ни на что не надеялся. По факту для меня это самые классные уроки оказались из всей кучи просмотренного. Причем я не хочу принижать заслуги других каналов - есть немало отличных образовательных видосов. А этот канал таков, что классные тут все, т.е. массовых знак качества
Кроме очевидных плюсов, которые наверняка отметили другие зрители, я хочу особо отметить то, что самое ценное для меня - автор показывает, какие техники кодинга НЕ надо применять, и какие надо, и объясняет почему. ВОТ ЭТО Я ДАВНО искал - инфу из практического опыт работы за деньги
Автору искренняя благодарность, буду смотреть и учиться остальные штук 80 видосов, заканчивая производством магазина, хоть VUE мне нафиг не нужен
Привет! Как дела у тебя, устроился на роботу?
@@andrewlevitsky6270 нет, я даже не пытался. Пришлось на много месяцев прекратить образовательный процесс, у нас тут пиздец настал, снаряды начали летать и взрываться...
Недавно опять начал учиться кодить. И кстати мне донесли важную вещь - так учиться неправильно и глупо. Надо поставить себе задачу - сделать написать небольшой интернет магазин, в образовательных целях. Когда сделал - значит готов идти работать.
Вот этим и занимаюсь, причем с удовольствием. Так значительно больше мотивация
P.S. Бро, а ты кто ? :))
@@gangster_dude ООО, я тоже из Украины, а именно Киев ))
Тоже первые пару месяцев было шумновато, а потом осенью блекауты, все против меня
@@andrewlevitsky6270 блэкауты я помню, романтика блин :) У меня в город наприлетало много, и в мой микрорайн, и в соседний дом и тд.... страшно вспоминать
А блэкауты закончились 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 и не хотело кушать миграцию...
Мораль басни. Откаты дело нехитрое, понять можно по всякому.
Яро плюсую)
Давно меня мучило это страшное слово "фабрика"! Спасибо, что как всегда, очень доступно и наглядно объяснил!))
Да, ничего сложного) Благодарю!)
Офигенный инструмент эти фабрики. Их осваивать нужно как можно быстрее, сэкономит в будущем тонны времени при дальнейшей учебе.
Автору спасибо за уроки!
Спасибо, за урок! Очень крутая и простая подача материала!
Благодарю!)
для 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,
];
ура, больше не придется для тестов вручную вводить кучу данных!😄
Ахах да)!)
В сидере сделал так, чтобы случайное количество тегов прикреплялось:
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);
});
Отличный урок!
Благодарю!)
Супер полезно Laravel, спасибо!
Благодарю)!
отличный урок!
Благодарю!)
У автора на 1:33 прям явно в списке - db:seed.
Погуглил я немного, так как захотелось более реальные изображения. Можно делать так
'image' => $this->faker->imageUrl(200, 150,'cats')
Но жалко, что меняется только надпись
К сожалению да)
Все работает, только не ясно почему в уроке таблица post_tag заполнилась, а у меня нет? У меня пишет ошибку " SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'tag_id' cannot be null"
Спасибо за отличный урок! 😊
камент для продвижения
Благодарю!)
Спасибо большое!!!!
Если у вас ошибка "Call to undefined method App\Post::factory()" и если в классе Post нет метода HasFactory, то попробуйте это: $posts = factory(Post::class)->times(10)->make();
Спасибо!
Спасибо за урок, как же быстро можно оказывается данных накидать. Особенно с тэгами интересно.
Привет Спасибо за урок. Тут у меня такой ошибка Argument '1' passed to random() is expected to be of type Closure|null, int given
Все работает, но один вопрос, как Laravel понимает какую фабрику куда нужно использовать? Ведь нет никакой связки между DatabaseSeeder и TagFactory например, чисто по имени файла понимает?
Например Tag::factory(20)->create() - у меня скажем 10 фабрик, как он понял что нужно юзать именно TagFactory? В model/Tag тоже нет связки между им и TagFactory
Тоже стало интересно как оно там работает внутри, покопался в коде,
и так.
в модели мы прописываем use HasFactory; чтобы использовать методы фабрики, напр. factory()
в этом методе есть код (упрощаю)
$factory = Factory::factoryForModel(get_called_class());
в методе factoryForModel
$factory = static::resolveFactoryName($modelName);
и в resolveFactoryName такой код
return static::$namespace.$modelName.'Factory';
то есть берется название модели и к нему прибавляется 'Factory' получаем название фабрики, которую и нужно использовать.
Вот она, магия ларавел))) Подозреваю что тут многие вищи работают подобным образом, просто нужно придерживаться определенных правил наименования и фреймворк многие вещи сделает сам.
Все записи с категориями добавились, кроме кроме таблицы post_tags, она пустая. Вылетела ошибка Call to undefined method App\Models\Post::tag() Что с этим делать? UPD: потерял 1 букву в названии функции)) Но интересно что PHPstorm не подсветил ошибку, а наоборот подсветил ее когда я изменил название функции на правильное)))
Спасибо за урок. Пошагово все разжевали) Сделал немного по другому. Через ModelSeeder и тут как раз пригодилась модель PostTag. Сгенерировал кол-во постов и тегов перемножил их для count(). Но в базу добавилось только 1000 записей, а по факту у меня 2250. База SQLite. Это где-то ограничение стоит или особенности данной базы? И вообще можно ли так делать? или правильнее будет как в уроке генерировать таблицу PostTag?
Можно делать как угодно, если это работает и отвечает требованиям безопасности и экономности ресурсов) В данном случае, требования никаких не было) Так что можно:) По поводу ограничений, точно не скажу) Но sqlite в рабочих проектах лучше не использовать) Только в качестве обучения азам
Местная фабрика имеет отношение к одноименному паттерну?! Вообще тему паттернов неплохо было бы сюда подтянуть, так как в ларавел их используется много.
Имеет, но реализовано под модели laravel. Паттерны можно, но потом:)
фабрика это Factorio ))
seeder = сеятель
Благодарю!)
у кого Laravel 9 вместо $this->faker-> надо использовать fake()->
Не понятно все равно каково практическое применение, что в редакторе заполнять, что в базе как бы невилика разница по объему труда
Ты что, дурак? Ты условно сделаешь новую миграцию, обновишь их и все изменения в таблице сбросятся. Если у тебя есть фабрика, тебе достаточно запустить одну команду. А если таким обновлений с миграциями будет много, ты будешь каждый раз заполнять вручную таблицы? А если для тестировки нужно 5000-10000 тысяч постов. Прям смешно
все там было вы проморгали артисан db:seed
Спасибо)
Can you give source code your tutorials ?
Sorry, but it doesnt exisist(
Доброго времени суток, подскажите, пожалуйста... Когда прописываю use HasFactory, выдает - " Undefined type 'Illuminate\Database\Eloquen\Factories\HasFactory' ", при этом путь вверху указан. Полазил по интернету, так ничего и не нашел. Буду благодарен за помощь
Привет! А где ты прописываешь? то есть у тебя изначально этого не было?
@@laravelcreative да, изначально не было. В классе модели
@@user-fw4vd6ry4i когда прописываешь use HasFactory, подсвечивается желтым, что типа нет импорт? Уверен, что ругается именно на это use hasfactory, а не где-то еще?
@@laravelcreative Ругается конкретно на это, импорт есть.
@@user-fw4vd6ry4i сделай скрин;-)