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