こんばんは。本日からLaravelを使用し、簡易的な社員管理システムを作成します。
今回作成するシステムを作る目的は、Laravelを速習するためです。
あまり細かいことにこだわらず、記事上の通り行えば、システムが作れるということを感じて
いただきたいです。
システムの概要
システムは、複数のテーブルを使用し、「1対多」、「多対多」の関係でリレーションを使用します。
システム内で作成するテーブルは下記です。
拠点テーブルと部署テーブルでリレーションを作成し、どの拠点にどの部署が属しているか管理します。
部署テーブルには拠点id(office_id)を持ちます。

続いて、社員がどのプロジェクトに属しているかを管理します。
社員とプロジェクトの関係は、「多対多」になります。
具体的にお伝えすると、ひとりの社員は複数のプロジェクトに参加する可能性がある。
プロジェクトは複数の社員が属する可能性がある。っということになります。
これは後程説明しますが、テーブルとテーブルの間に中間テーブルを作成する必要があります。

環境説明
環境について説明します。
OSは、Windows 10 20H2を使用し、XAMPPを使用します。
XAMPPのバージョンは、3.2.4です。
データベースは、XAMPP内のMYSQLです。
Laravelでプロジェクト作成
では、ここからプロジェクトを作成していきます。説明が不足する可能性があります。
どのようなコマンドやコードで何をするかつかんでいただければと思います。
最初にプロジェクトを作成します。
コマンドプロンプトを起動し、フォルダを移動し、プロジェクトを作成します。
cd \
・プロジェクトの作成
composer create-project –prefer-dist laravel/laravel company

やや時間はかかると思いますが、コマンドが戻ってくるまで待ちます。
私の環境では、3分くらいかかりました。

Cドライブ直下に「company」フォルダが作成されています。

MySQLに「company」データベースを作成
MySQLを起動し、「company」データベースを作成します。
文字コードは、「utf8_general_ci」を選び、「作成」ボタンをクリックします。

Laravelの設定ファイル(.env)にデータベース接続設定を編集
c:\company\.envファイルにデータベース接続設定を行います。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=company
DB_USERNAME=root
DB_PASSWORD=

まとめ
本日は、システムの概要を説明させていただき、Laravelを使って、プロジェクトの作成、データベース接続の設定までを行いました。
今後は、システム完成まで数回に分けて説明させていただきます。