Laravelでサイトを作ってみよう!【初心者向けガイド】
1. はじめに
Laravel(ララベル)は、PHPの人気フレームワークの一つであり、シンプルで使いやすい構文・強力な機能・美しいコード設計 を特徴としています。
本記事では、Laravelを使って基本的なWebサイトを作成する方法を解説します。
学べること - Laravelのインストール方法 - ルーティングとコントローラーの作成 - ビューを使ったページ表示 - データベースと連携したCRUD機能
2. Laravelの環境構築
2.1. 必要なソフトウェア
Laravelを動かすには、以下の環境が必要です。 1. PHP(バージョン 8.x 推奨) 2. Composer(PHPのパッケージ管理ツール) 3. データベース(MySQLまたはSQLite) 4. Webサーバー(ApacheまたはLaravelの組み込みサーバー)
2.2. Laravelのインストール
ターミナルまたはコマンドプロンプトで、以下のコマンドを実行します。
composer create-project --prefer-dist laravel/laravel my-laravel-app
※ my-laravel-app
は作成するプロジェクトのフォルダ名です。
2.3. 開発サーバーの起動
cd my-laravel-app php artisan serve
ブラウザで http://127.0.0.1:8000
にアクセスすると、Laravelの初期ページが表示されます。
3. ルーティングとコントローラーの作成
3.1. ルートの定義
Laravelでは、routes/web.php
にルートを定義します。
例えば、シンプルな「Hello, Laravel!」を表示するルートを作成します。
use Illuminate\Support\Facades\Route; Route::get('/hello', function () { return "Hello, Laravel!"; });
ブラウザで http://127.0.0.1:8000/hello
にアクセスすると、「Hello, Laravel!」が表示されます。
3.2. コントローラーの作成
以下のコマンドでコントローラーを作成します。
php artisan make:controller PageController
作成された app/Http/Controllers/PageController.php
を編集し、メソッドを追加します。
namespace App\Http\Controllers; use Illuminate\Http\Request; class PageController extends Controller { public function index() { return "Welcome to Laravel!"; } }
ルートを routes/web.php
に追加します。
Route::get('/welcome', [PageController::class, 'index']);
ブラウザで http://127.0.0.1:8000/welcome
にアクセスすると、「Welcome to Laravel!」が表示されます。
4. ビューを使ってページを表示する
4.1. ビューの作成
resources/views
に home.blade.php
というファイルを作成し、以下の内容を記述します。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Laravelサイト</title> </head> <body> <h1>Laravelへようこそ!</h1> <p>これはBladeテンプレートを使ったページです。</p> </body> </html>
4.2. コントローラーでビューを呼び出す
PageController.php
を修正し、ビューを返すようにします。
public function home() { return view('home'); }
ルートを追加します。
Route::get('/home', [PageController::class, 'home']);
ブラウザで http://127.0.0.1:8000/home
にアクセスすると、作成したページが表示されます。
5. データベースとの連携(CRUD機能)
5.1. データベース設定
.env
ファイルを編集し、データベースの接続情報を設定します。
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=my_laravel_db DB_USERNAME=root DB_PASSWORD=secret
5.2. マイグレーション(テーブルの作成)
以下のコマンドで posts
テーブルを作成するマイグレーションを生成します。
php artisan make:migration create_posts_table
database/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php
を編集します。
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up() { Schema::create('posts', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('content'); $table->timestamps(); }); } public function down() { Schema::dropIfExists('posts'); } };
以下のコマンドでマイグレーションを実行し、データベースにテーブルを作成します。
php artisan migrate
5.3. モデルの作成
php artisan make:model Post
作成された app/Models/Post.php
を編集します。
namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Post extends Model { use HasFactory; protected $fillable = ['title', 'content']; }
5.4. データの登録
コントローラーにデータ登録処理を追加します。
use App\Models\Post; public function create() { Post::create([ 'title' => '最初の投稿', 'content' => 'これはLaravelのテスト投稿です。', ]); return "投稿を作成しました!"; }
ルートを追加し、/create
にアクセスすると投稿がデータベースに保存されます。
Route::get('/create', [PageController::class, 'create']);
6. まとめ
学んだ内容 | 説明 |
---|---|
Laravelのインストール | composer create-project でプロジェクトを作成 |
ルーティング | routes/web.php にルートを定義 |
コントローラーの作成 | php artisan make:controller でコントローラーを作成 |
ビューの表示 | Bladeテンプレート でページを作成 |
データベース連携 | マイグレーション・モデルを使ってCRUD操作 |
次のステップ - フォームからデータを登録する - 投稿一覧ページを作成する - 認証機能(ログイン・登録)を追加する
Laravelを使って本格的なWebアプリを作ってみましょう!