Cet article vous apporte une introduction détaillée (exemple de code) sur la migration des données Laravel et Eloquent ORM. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
La base de données peut être considérée comme la partie la plus couramment utilisée et la plus importante du développement back-end. Laravel fournit une classe de modèle Eloquent ORM très pratique pour une interaction simple et intuitive avec la base de données. Parallèlement, la migration des données permet de gérer la base de données, qui peut être partagée et éditée avec l'équipe. Pour plus d’informations sur les deux, veuillez consulter la documentation ci-dessous.
Ce qui suit utilise les deux à titre d'exemple. L'exigence est d'enregistrer l'historique de navigation de l'utilisateur. Veuillez ne pas intégrer cet exemple dans des projets réels, cet article n'est qu'un exemple. Le projet réel est enregistré en fonction des besoins et la méthode de stockage est sélectionnée.
Créer un tableau de données
La première étape consiste bien entendu à créer un tableau de données. L'utilisation de la commande artisan peut facilement créer des modèles et migrer des données. php artisan make:model Models/BrowseLog -m, le paramètre -m crée également un fichier de migration de données lors de la création du modèle. Après avoir exécuté la commande ci-dessus, deux nouveaux fichiers app/Models/BrowseLog.php et database/migrations/{now_date}_create_browse_logs_table.php ont été ajoutés.
Modifiez ensuite {now_date}_create_browse_logs_table.php pour créer la table de données
/** * Run the migrations. * * @return void */ public function up() { Schema::create('browse_logs', function (Blueprint $table) { $table->increments('id'); $table->ipAddress('ip_addr')->comment('ip 地址'); $table->string('request_url', 20)->comment('请求 url'); $table->char('city_name', 10)->comment('根据 ip 获取城市名称'); $table->timestamps(); }); DB::statement("ALTER TABLE `browse_logs` comment'浏览记录表'"); // 表注释 }
Une fois l'édition terminée, exécutez la commande php artisan migrate pour créer toutes les tables de données qui ont. n’a pas été migré. Comme suit
Personnellement, le type de données par défaut de Laravel est discutable. Par exemple, le format de données de ipAddress() est varchar(45). En fait, vous pouvez utiliser ip2long pour le convertir en int pour le stockage. timestamps() peut également utiliser des horodatages pour le stockage. Bien entendu, laravel fournit également des accesseurs et des modificateurs pour faciliter la maintenance. Vous pouvez choisir vous-même dans le projet réel.
Définir le middleware
Définir un middleware global qui sera exécuté pour chaque requête. Exécutez php artisan make:middleware BrowseLog pour créer le fichier app/Http/Middleware/BrowseLog.php.Ajoutez le middleware créé à app/Http/Kernel.php comme suit
Enregistrer les données
Enfin, dans le middleware, enregistrez simplement les données dans la base de données. Le code est le suivant/** * 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); }
Les données sont écrites normalement, et c'est la fin de cet exemple.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!