Автор оригинала: David Wong.
Представил
Можно сказать, что база данных является наиболее распространенной и важной частью внутренней разработки. Laravel предоставляет очень практичный класс красноречивой модели ORM, который прост и интуитивно понятен для взаимодействия с базой данных. В то же время миграция данных используется для управления базой данных, которой можно делиться и редактировать вместе с командой. Для получения дополнительной информации об обоих см. документацию ниже. В следующих примерах используются оба из них. Требование состоит в том, чтобы записывать записи о просмотре пользователями. Не привносите этот пример в реальный проект, эта статья-всего лишь пример. Фактический проект записывается в соответствии с требованиями, и выбирается режим хранения.
Создание таблиц данных
Первым шагом, конечно, является создание таблицы данных. Использование ремесленник Команды упрощают создание моделей и перенос данных. php ремесленник делает: модели моделей/Просмотр журнала-m , -m Параметры создают файлы переноса данных, а также модели. После выполнения вышеупомянутых заказов был добавлен новый. app/Models/BrowseLog.php а также база данных/миграции/{now_date}_create_browse_logs_table.php Два файла. Следующее редактирование {now_date}_create_browse_logs_table.php Для создания таблиц данных
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('browse_logs', function (Blueprint $table) {
$table->increments('id');
$table - > ipAddress ('ip_addr') - > comment ('ip address');
$table - > string ('request_url', 20) - > comment ('request url');
$table->char ('city_name', 10) ->comment (' get the city name according to IP ');
$table->timestamps();
});
DB:: statement ("ALTER TABLE `browse_logs `comment'Browse Record Table');//Table Annotation"
}Код, как указано выше, после редактирования выполните команды php artisan migrate Создаются все таблицы, которые не были перенесены. следующим образом
Лично тип данных по умолчанию laravel является спорным. например ip-адрес() Формат данных: varchar(45) На самом деле, его можно использовать ip2long преобразовать в int Хранилище. метки времени() Метки времени также можно использовать для хранения. Конечно, laravel также предоставляет средства доступа – модификаторы для удобства обслуживания. У вас есть свой собственный выбор в реальном проекте.
Определение промежуточного программного обеспечения
Определите глобальное промежуточное программное обеспечение, и каждый запрос будет выполнен. реализация php artisan make:журнал просмотра промежуточного программного обеспечения И создал app/Http/Middleware/BrowseLog.php Документы. Добавьте созданное промежуточное программное обеспечение в app/Http/Kernel.php Ниже перечислены
Записанные данные
Наконец, в промежуточном программном обеспечении запишите данные в базу данных, код выглядит следующим образом
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$log = new \App\Models\BrowseLog();
$log->ip_addr = $request->getClientIp();
$log->request_url = $request->path();
$log->city_name = get_city_by_ip();
$log->save();
return $next($request);
}Посетив несколько ссылок, перейдите в базу данных и посмотрите
Запись данных является нормальной, насколько это касается данного примера.
Ссылка: Быстрое начало работы с базами данных – Миграция, Красноречивый ORM.
Оригинал: “https://developpaper.com/laravel-data-migration-and-eloquent-orm/”