Skip to content

NimTechnology

Trình bày các công nghệ CLOUD một cách dễ hiểu.

  • Kubernetes & Container
    • Docker
    • Kubernetes
      • Ingress
      • Pod
    • Helm Chart
    • OAuth2 Proxy
    • Isito-EnvoyFilter
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Vault
    • Longhorn – Storage
    • VictoriaMetrics
    • MetalLB
    • Kong Gateway
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Argo Events
    • Spinnaker
    • Jenkins
    • Harbor
    • TeamCity
    • Git
      • Bitbucket
  • Coding
    • DevSecOps
    • Terraform
      • GCP – Google Cloud
      • AWS – Amazon Web Service
      • Azure Cloud
    • Golang
    • Laravel
    • Python
    • Jquery & JavaScript
    • Selenium
  • Log, Monitor & Tracing
    • DataDog
    • Prometheus
    • Grafana
    • ELK
      • Kibana
      • Logstash
  • BareMetal
    • NextCloud
  • Toggle search form

[Laravel] Integrating a Model with a database in Laravel.

Posted on November 1, 2024November 19, 2024 By nim No Comments on [Laravel] Integrating a Model with a database in Laravel.

Trong bài này thì mình tìm hiểu các sử dụng model trong laravel để thực hiện select hoặc insert trong Laravel bằng model.

Contents

Toggle
  • 1) Set up the connection with a database.
  • 1.1) SQLite.
  • 2) Set up the migration to create a table in the database.
  • 3) Define the Model database.
  • 4) Declare the model and apply it in the controller.
    • Delete record database with laravel:

1) Set up the connection with a database.

1.1) SQLite.

Cập nhật trong .env
DB_CONNECTION=sqlite

Tiếp đến bạn kiểm tra: config/database.php

The database_path('database.sqlite') function in Laravel is a helper that returns the full path to the database directory in your Laravel project, with database.sqlite appended.

database_path('database.sqlite')

Return:

/var/www/my_project/database/database.sqlite

2) Set up the migration to create a table in the database.

Bạn cần gõ 1 command:

php artisan make:migration create_table_changing_nim_config

Tiếp đến bạn tạo các column:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('table_changing_nim_config', function (Blueprint $table) {
            $table->id();
            $table->string('environment');
            $table->string('pool');
            $table->json('stable_config'); // JSON column to store an object
            $table->datetime('expire_at_time');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('table_changing_nim_config');
    }
};

stable_config sẽ là dạng lưu array
expire_at_time sẽ là dạng datetime

sau đó bạn run:

php artisan migrate

Nếu bạn muốn rollback lại DB bạn có thể run câu lệnh:

php artisan migrate:rollback

3) Define the Model database.

Bạn sử dụng command:

php artisan make:model ChangingNimConfig

sau khi gõ command này bạn sẽ thấy 1 file được tạo ra:

Bạn sẽ khai báo thêm các khai báo như là $table, $primaryKey, $fillable là các column

vì data insert vào stable_config đang array nên mình có thêm:

    protected $casts = [
        'stable_config' => 'array', // Cast stable_config as an array
    ];

4) Declare the model and apply it in the controller.

Đầu tiên chúng ta khai bao sử dụng Model:

Tiếp đến trong handler:

            // Check the response status
            if ($response->getStatusCode() === 201 || $response->getStatusCode() === 200) {
                $changingNIMConfig = new ChangingNIMConfig();
                $changingNIMConfig->environment = $environment;
                $changingNIMConfig->pool = $pool;
                $changingNIMConfig->stable_config = $argocdYaml;
                $dt = Carbon::now();
                $changingNIMConfig->expire_at_time = $dt->addDays(1);
                $changingNIMConfig->save();
                //https://www.youtube.com/watch?v=xCbCEDg_qv8

                 // Redirect with success message
                return redirect()->route('pools_environment', ['environment' => $environment])
                    ->with('success', 'YAML file pushed to Bitbucket successfully!');
            } else {

Sau khi chạy lệnh kiểm tra thấy có dữ liệu trong DB là ok

Delete record database with laravel:

$changingScaleObjectK8s = ChangingScaleObjectK8s::where('environment', $environment)
    ->where('namespace', $envConfig['namespace'])
    ->get(); // This returns a collection

Đầu tiên là bạn sẽ get 1 list nào đó trong database.
để xóa các records thì bạn cần 1 loop:

$changingScaleObjectK8s = ChangingScaleObjectK8s::where('environment', $environment)
    ->where('namespace', $envConfig['namespace'])
    ->get(); // This returns a collection

foreach ($changingScaleObjectK8s as $scaleObject) {
    // Process each $scaleObject as needed, then delete it
    $scaleObject->delete();
}

Hoặc bạn có thể directly delete thông qua query:

ChangingScaleObjectK8s::where('environment', $environment)
    ->where('namespace', $envConfig['namespace'])
    ->delete(); // This deletes all matching records directly
Laravel

Post navigation

Previous Post: Monitoring DocumentDB of AWS.
Next Post: [Git] Look into Git Submodule

More Related Articles

[Laravel] Laravel code is helpful Laravel
[Laravel] Handle datetime easily with Carbon in Laravel. Laravel
Hướng dẫn thêm column(cột) và change type column cho table bằng command trong Laravel Laravel
[Docker] Docker Laravel on Alpine. Laravel
Tự tạo Command “php artisan” cho riêng mình trên web laravel Laravel
[sweetalert2] Utilize SweetAlert2 to add an additional popup to your website. Laravel

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Tham Gia Group DevOps nhé!
Để Nim có nhiều động lực ra nhiều bài viết.
Để nhận được những thông báo mới nhất.

Recent Posts

  • [Laravel] Laravel Helpful June 26, 2025
  • [VScode] Hướng dẫn điều chỉnh font cho terminal June 20, 2025
  • [WordPress] Hướng dấn gửi mail trên WordPress thông qua gmail. June 15, 2025
  • [Bitbucket] Git Clone/Pull/Push with Bitbucket through API Token. June 12, 2025
  • [Teamcity] How to transfer the value from pipeline A to pipeline B June 9, 2025

Archives

  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021

Categories

  • BareMetal
    • NextCloud
  • CI/CD
    • Argo Events
    • ArgoCD
    • ArgoWorkflows
    • Git
      • Bitbucket
    • Harbor
    • Jenkins
    • Spinnaker
    • TeamCity
  • Coding
    • DevSecOps
    • Golang
    • Jquery & JavaScript
    • Laravel
    • NextJS 14 & ReactJS & Type Script
    • Python
    • Selenium
    • Terraform
      • AWS – Amazon Web Service
      • Azure Cloud
      • GCP – Google Cloud
  • Kubernetes & Container
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Docker
    • Helm Chart
    • Isito-EnvoyFilter
    • Kong Gateway
    • Kubernetes
      • Ingress
      • Pod
    • Longhorn – Storage
    • MetalLB
    • OAuth2 Proxy
    • Vault
    • VictoriaMetrics
  • Log, Monitor & Tracing
    • DataDog
    • ELK
      • Kibana
      • Logstash
    • Fluent
    • Grafana
    • Prometheus
  • Uncategorized
  • Admin

Copyright © 2025 NimTechnology.