TechCraft – エンジニアのためのスキルアップメモ

エンジニアのスキルアップを少しでも加速する技術ブログ

Laravel 初めてのサイト作り

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/viewshome.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アプリを作ってみましょう!