Maison > cadre php > Laravel > Introduction détaillée à la migration de données Laravel et à Eloquent ORM (exemple de code)

Introduction détaillée à la migration de données Laravel et à Eloquent ORM (exemple de code)

不言
Libérer: 2019-01-08 11:34:17
avant
3663 Les gens l'ont consulté

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'浏览记录表'"); // 表注释
    }
Copier après la connexion

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

Introduction détaillée à la migration de données Laravel et à Eloquent ORM (exemple de code)

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

Introduction détaillée à la migration de données Laravel et à Eloquent ORM (exemple de code)

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);
    }
Copier après la connexion
Après avoir visité quelques liens, allez dans la base de données pour y jeter un œil

Introduction détaillée à la migration de données Laravel et à Eloquent ORM (exemple de code)

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal