Skip to content

Commit 5e43deb

Browse files
authored
Update seeding.md
1 parent b670c8c commit 5e43deb

File tree

1 file changed

+21
-23
lines changed

1 file changed

+21
-23
lines changed

seeding.md

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@ git: 9f36b02f2c2968ad2c6945df79d9eaf31dfdd224
44

55
# База данных · Наполнение фиктивными данными
66

7-
87
<a name="introduction"></a>
98
## Введение
109

1110
Laravel предлагает возможность наполнения вашей базы тестовыми данными с использованием классов-наполнителей. Все классы наполнителей хранятся в каталоге `database/seeders`. Класс `DatabaseSeeder` уже определен по умолчанию. В этом классе вы можете использовать метод `call` для запуска других наполнителей, что позволит вам контролировать порядок наполнения БД.
1211

13-
> [!NOTE]
12+
> [!NOTE]
1413
> При наполнении базы данных автоматически отключается защита [массового присвоения](/docs/{{version}}/eloquent#mass-assignment).
1514
1615
<a name="writing-seeders"></a>
@@ -22,7 +21,6 @@ Laravel предлагает возможность наполнения ваш
2221
php artisan make:seeder UserSeeder
2322
```
2423

25-
2624
Класс наполнителя (сидера) по умолчанию содержит только один метод: `run`. Этот метод вызывается при выполнении [команды Artisan](/docs/{{version}}/artisan) `db:seed`. Внутри метода `run` вы можете вставлять данные в свою базу данных так, как вам удобно. Вы можете использовать [строитель запросов (query builder)](/docs/{{version}}/queries) для ручной вставки данных или [фабрики моделей Eloquent](/docs/{{version}}/eloquent-factories).
2725

2826
В качестве примера давайте изменим класс `DatabaseSeeder`, созданный по умолчанию, и добавим выражение вставки фасада `DB` в методе `run`:
@@ -51,7 +49,7 @@ php artisan make:seeder UserSeeder
5149
}
5250
}
5351

54-
> [!NOTE]
52+
> [!NOTE]
5553
> В методе `run` вы можете объявить любые необходимые типы зависимостей. Они будут автоматически извлечены и внедрены через [контейнер служб](/docs/{{version}}/container) Laravel.
5654
5755
<a name="using-model-factories"></a>
@@ -91,37 +89,35 @@ php artisan make:seeder UserSeeder
9189
]);
9290
}
9391

92+
<a name="muting-model-events"></a>
9493
### Отключение событий модели
9594

9695
При выполнении сидов (seeds) вы можете захотеть предотвратить моделям отправку событий. Для этого вы можете использовать трейт `WithoutModelEvents`. При его использовании, трейт `WithoutModelEvents` гарантирует, что события модели не будут отправлены, даже если дополнительные сид-классы выполняются с помощью метода `call`:
9796

98-
```php
99-
<?php
100-
101-
namespace Database\Seeders;
97+
<?php
10298

103-
use Illuminate\Database\Seeder;
104-
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
99+
namespace Database\Seeders;
105100

106-
class DatabaseSeeder extends Seeder
107-
{
108-
use WithoutModelEvents;
101+
use Illuminate\Database\Seeder;
102+
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
109103

110-
/**
111-
* Запуск сидеров базы данных.
112-
*/
113-
public function run(): void
104+
class DatabaseSeeder extends Seeder
114105
{
115-
$this->call([
116-
UserSeeder::class,
117-
]);
106+
use WithoutModelEvents;
107+
108+
/**
109+
* Запуск сидеров базы данных.
110+
*/
111+
public function run(): void
112+
{
113+
$this->call([
114+
UserSeeder::class,
115+
]);
116+
}
118117
}
119-
}
120-
```
121118

122119
Этот трейт поможет вам отключить отправку событий модели во время выполнения сидов (seeds).
123120

124-
125121
<a name="running-seeders"></a>
126122
## Запуск наполнителей
127123

@@ -136,6 +132,8 @@ php artisan db:seed --class=UserSeeder
136132
Вы также можете заполнить свою базу данных, используя команду `migrate:fresh` в сочетании с опцией `--seed`, которая удалит все таблицы и перезапустит все миграции. Эта команда полезна для полной перестройки вашей базы данных. Опцию `--seeder` можно использовать для указания конкретного сида (seeder) для выполнения:
137133

138134
```shell
135+
php artisan migrate:fresh --seed
136+
139137
php artisan migrate:fresh --seed --seeder=UserSeeder
140138
```
141139

0 commit comments

Comments
 (0)