3. 數據庫操作(簡要)
配置
數據庫的配置文件在 config/database.php
文件中,你可以在這個文件中定義所有的數據庫連接配置,并指定默認的數據庫連接。這個文件中提供了大部分 Laravel 能夠支持的數據庫配置示例。
'mysql' => ['driver' => 'mysql','url' => env('DB_URL'),'host' => env('DB_HOST', '127.0.0.1'),'port' => env('DB_PORT', '3306'),'database' => env('DB_DATABASE', 'laravel'),'username' => env('DB_USERNAME', 'root'),'password' => env('DB_PASSWORD', ''),'unix_socket' => env('DB_SOCKET', ''),'charset' => env('DB_CHARSET', 'utf8mb4'),'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),// 用于設置數據庫表前綴。它從環境變量中獲取DB_PREFIX的值,如果環境變量未設置則使用空字符串作為默認值'prefix' => env('DB_PREFIX', ''), 'prefix_indexes' => true,'strict' => true,'engine' => null,'options' => extension_loaded('pdo_mysql') ? array_filter([PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),]) : [],
.env
部分:
DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=laravelDB_USERNAME=rootDB_PASSWORD=123456DB_PREFIX=laravel_
查詢
- 支持執行原生 SQL 查詢
- 查詢構建器
等等 這些不做演示了,再官網查看下即可
模型、Eloquent ORM簡單介紹
如果你數據庫還沒有表。在 Laravel 中,你可以通過 模型(Model)結合遷移(Migration) 來創建數據庫表
下面是一個完整的示例,演示如何用 Laravel 模型 + 遷移 創建一個“博客文章(Blog Article)”的表,并實現模型邏輯,便于你插入、查詢數據。
🧱 目標:創建一個博客文章表 articles
,包含以下字段:
字段名 | 類型 | 說明 |
---|---|---|
id | bigint | 主鍵 |
title | string | 文章標題 |
content | text | 正文內容 |
author | string | 作者名稱 |
is_published | boolean | 是否已發布 |
published_at | datetime | 發布時間(可空) |
created_at | timestamp | 創建時間 |
updated_at | timestamp | 更新時間 |
? 第一步:創建模型和遷移
bashphp artisan make:model Article -m
這個命令會生成:
- 模型文件:
app/Models/Article.php
- 遷移文件:
database/migrations/xxxx_xx_xx_create_articles_table.php
? 第二步:定義遷移內容
編輯生成的遷移文件:
php// database/migrations/xxxx_xx_xx_create_articles_table.phpuse Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;return new class extends Migration {public function up(): void{Schema::create('articles', function (Blueprint $table) {$table->id(); // 主鍵$table->string('title'); // 標題$table->text('content'); // 正文$table->string('author'); // 作者$table->boolean('is_published')->default(false); // 是否發布$table->timestamp('published_at')->nullable(); // 發布時間$table->timestamps(); // created_at 和 updated_at});}public function down(): void{Schema::dropIfExists('articles');}
};
? 第三步:執行遷移
bashphp artisan migrate
成功后數據庫會新增一張 articles
表,結構如下:
bashmysql> DESC articles;
? 第四步:配置模型 Article
編輯 app/Models/Article.php
:
php<?phpnamespace App\Models;use Illuminate\Database\Eloquent\Model;class Article extends Model
{// 可批量賦值字段protected $fillable = ['title','content','author','is_published','published_at',];
}
$fillable` 是為了支持批量創建,例如:`Article::create([...])
? 第五步:使用模型插入數據(示例)
在控制器或 Tinker 中插入數據:
php// 示例1:插入一篇文章
use App\Models\Article;Article::create(['title' => 'Laravel 入門指南','content' => '這是內容正文...','author' => '濤哥','is_published' => true,'published_at' => now(),
]);
? 第六步:查詢數據(示例)
php// 查詢所有已發布的文章
$publishedArticles = Article::where('is_published', true)->get();// 查詢某一篇文章
$article = Article::find(1);
echo $article->title;
? 可選擴展:控制器中使用
你可以通過 Artisan 創建控制器:
bashphp artisan make:controller ArticleController --resource
然后在 ArticleController
中添加邏輯,實現增刪改查。
Eloquent ORM 還有很多很多內容,官網查詢看下即可