Как заполнить вашу базу данных с помощью PHP laravel
Большинство людей часто предпочитают использовать PHP-фреймворк, а не писать чистый PHP с нуля. Я думаю, что одна из причин — не дать разработчикам писать код с нуля. Одной из самых полезных функций в любой среде PHP является функция заполнения базы данных, и laravel делает это с такой легкостью, что именно поэтому эта среда выделяется среди других, таких как среды Symfony, Zend и Yii.
Чтобы мы могли начать заполнять вашу базу данных поддельными данными, вам нужно сначала понять, что такое заполнение базы данных. Для заполнения ваша база данных предназначена просто для заполнения вашей базы данных фальшивыми данными, в основном для тестирования функциональных возможностей приложения, чтобы вы знали, как заполнить свою базу данных, вам нужно знать о фабрике моделей и сеялке базы данных.
Фабрики моделей — это удобное централизованное место, которое вы используете для определения того, как ваши модели будут заполняться, это раздел, в котором вы указываете способ или структуру, в которой ваша модель будет заполняться поддельными данными. В то время как сеялка базы данных используется для заполнения данных, класс сеялки — это место, где вы указываете, сколько данных вы хотите заполнить в своей базе данных. Хорошо, давайте посмотрим на это так: скажем, вы хотите создать API для средней школы в вашем районе, это означает, что API вам нужно будет создать модель, контроллер и таблицу для учителей, учеников, ходов, сотрудников, порока. -principals и принципалы, то вы должны перейти в каталог фабрик и создать фабрику моделей, где будет создана структура для того, как будут созданы поддельные данные для всех этих моделей, затем вы должны перейти в директорию сеялки, а затем создать файл сеялки для все эти модели, затем в этих файлах вы указываете, насколько большими будут данные, которые вы хотите заполнить, посмотрите на это так: ученик будет похож на плод манго, модель учителя будет похожа на апельсиновый фрукт, модель Ходса будет как яблоки, модели заместителей директора будут похожи на груши, основной фрукт будет похож на грейпфрут, а посох будет похож на ананас, так что теперь каждая из этих моделей, как и фрукты, будет иметь разную структуру и разные размеры. nt количество семян (данные о семенах).
Система заполнения базы данных с использованием фабрик моделей и сеялки базы данных, этот процесс можно использовать для модульного тестирования и тестирования производительности вашего проекта.
Чтобы мы могли начать заполнение нашей базы данных, мы должны сначала установить laravel в нашей системе.
Я собираюсь показать вам, как заполнить вашу базу данных, создав API аутентификации пользователей, это будет просто простая настройка регистрации для пользователей, чтобы они могли зарегистрироваться в вашем приложении, затем мы заполним базу данных некоторыми поддельными данными, поэтому вместо регистрации до 100 анонимных людей, мы просто автоматически сгенерируем наши поддельные данные с помощью сеялки базы данных.
нам нужно сначала установить laravel в нашей системе, вы можете проверить документацию laravel, чтобы увидеть шаги. Когда вы закончите установку laravel в своей системе, теперь вы можете перейти к файлу .env и создать базу данных на MySQL SQLite или любой другой, которую вы используете. Когда вы закончите создание базы данных, перейдите в файл .env и введите имя базы данных, имя пользователя и пароль базы данных, если он у вас есть, он должен выглядеть следующим образом:
DB_DATABASE=new_database
DB_USERNAME=root
DB_PASSWORD=secret
Затем перейдите к пользовательской модели в каталоге приложения и введите следующие параметры (модель будет содержать логику для хранения информации о пользователе). Вы должны увидеть файл с именем User.php, если вы его не видите, вы можете использовать команда artisan в вашей командной строке следующим образом
PHP artisan make:model User
когда вы открываете файл, вы затем создаете логику для ввода данных пользователя следующим образом:
protected $fillable = [
'firstName', 'lastName', 'gender', 'email', 'password',
];
protected $hidden = [
'password', 'remember_token',
];
protected $casts = [
'email_verified_at' => 'datetime',
];
protected $table="users";
protected $primaryKey = 'id';
Словесная переменная, называемая fillable, предназначена для видимого пользовательского ввода в форме аутентификации, скрытая переменная предназначена для невидимых входных данных, в то время как переменная cast просто означает изменение значения из одного типа значения в другой, табличная переменная означает для хранения данные о таблице пользователей, а первичный ключ означает идентификатор регистрирующегося пользователя.
Затем мы приступаем к созданию таблицы миграции базы данных для пользователя, используя командную строку для ввода:
php artisan make:migration create_users_table
затем laravel должен создать файл миграции в папке миграции, который будет служить таблицей для пользователей в базе данных, затем мы вводим эти атрибуты для заполнения в нашей модели в пользовательскую таблицу, чтобы они правильно сохранялись в базе данных.
Поэтому, когда мы открываем таблицу create_users_table в нашей папке миграции, мы вводим в нее следующие параметры:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('firstName');
$table->string('lastName');
$table->string('gender');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
Тогда это для области хранения для firstName пользователя, lastName пользователя, пола пользователя и электронной почты пользователя. Вот как информация о пользователе будет храниться в вашей БД, которую вы создали ранее.
После того, как вы закончите с этим, вы создадите контроллер для пользователя, также используя команду artisan, в командной строке напишите:
php artisan make:controller UserController
Затем перейдите к файлу вашего контроллера, который находится в каталоге Http, откройте файл UserController. Контроллер — это компонент, который проверяет валидацию, что означает, что он проверяет, соответствует ли пользовательский ввод требуемым критериям, а затем, если это так, он продолжает сохранять данные в таблице миграции в вашей базе данных, но если они не соответствуют, контроллер будет выдать исключение (ошибку). Когда вы открываете файл контроллера, вам нужно будет написать следующий код проверки
class UserController extends Controller
{
public function signUp(Request $request)
{
$this->validate($request, [
'firstName' => 'required',
'lastName' => 'required',
'email' => 'required|email|unique:users',
'gender' => 'required',
'password' => 'required'
]);
$user = new User([
'firstName' => $request->input('firstName'),
'lastName' => $request->input('lastName'),
'email' => $request->input('email'),
'gender' => $request->input('gender'),
'password' => bcrypt($request->input('password')),
]);
$user->save();
return response()->json([
'message' => 'user successfully created!'
], 201);
}
}
Затем, после того, как вы закончите работу с вашим контроллером, вы можете перейти в каталог маршрутов и открыть файл для маршрутов API, который называется api.php, поэтому, когда вы открываете api.php, вы определяете маршруты к своему пользовательскому контроллеру. это просто означает, что мы должны указать URI, который направит почтальона туда, где мы определили нашу аутентификацию пользователя. Итак, записываем следующий код в файл api.php:
Route::resource('/users', 'User\UserController', ['except' => ['create', 'edit']]);
Затем вы должны снова запустить приложение, выполнив команду artisan:
php artisan serve
Затем вы можете перейти к своему инструменту разработки для отдыха, такому как почтальон, и протестировать свою работу, скажем, вам нужно еще около 100 пользователей для запуска теста, это не лучшая практика, если вы продолжаете создавать анонимные данные на почтальоне от 1 до 100, вот тут-то и появляется сеялка базы данных.
Давайте теперь заполним нашу базу данных дополнительными поддельными данными, мы сначала перейдем в каталог базы данных, затем мы откроем каталог factory в каталоге базы данных, вы увидите файл userFactory.php, затем откройте его и укажите, как вы хотите, чтобы ваш поддельные данные должны быть оформлены следующим образом:
factory->define(User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
'verified' =>$verified = $faker->randomElement([User::VERIFIED_USER, User::UNVERIFIED_USER]),
'verification_token' => $verified == User::VERIFIED_USER ? null : User::generateVerificationCode(),
'verified' => $verified = $faker->randomElement([User::ADMIN_USER, User::REGULAR_USER]),
];
});
Затем вы переходите к исходному каталогу, все еще находящемуся в базе данных, а затем открываете файл DatabaseSeeder и записываете этот код в функцию загрузки:
$this->call(UsersTableSeeder::class);
А затем с помощью команды artisan вы создаете новый файл, поэтому в терминале введите:
Php artisan make:seeder UsersTableSeeder
Затем перейдите к этому файлу и внутри функции загрузки вы должны ввести следующее, чтобы ваш файл выглядел так:
public function run()
{
User::truncate();
$usersQuantity = 100;
factory(User::class, $usersQuantity)->create();
}
}
Затем, наконец, мы направляемся к нашему терминалу и запускаем любой из них:
php artisan db:seed
php artisan db:seed --class=UsersTableSeeder
Теперь мы можем либо перейти к почтальону и проверить, либо перейти к нашей базе данных, если вы хотите проверить с почтальоном, вы запускаете запрос на получение на вашем локальном хосте, косая черта ваших маршрутов API следующим образом:
http://127.0.0.1:8000/api/пользователи
И тогда вы видите своих 100 фальшивых пользователей в своем хранилище.
Примечание. Не забудьте импортировать модель пользователя в UserFactory, UserController и userTableSeeder.