Laravelでのルート、コントローラ、モデルの基本的な役割を、できるだけ簡単に説明します。
1. ルート (Route)
- 役割: ルートは、ユーザーがブラウザで入力したURLを基に、どのコントローラやアクションを実行するかを決定する設定です。
- 仕組み: ルートはURI(Uniform Resource Identifier)とHTTPメソッド(GET, POSTなど)に基づいて、適切なコントローラのメソッドにリクエストを渡します。
- 例:
php
Route::get('/login', [AuthController::class, 'showLoginForm']);
- この例では、
/login
というURLにアクセスしたときに、AuthController
のshowLoginForm
メソッドが呼ばれます。
2. コントローラ (Controller)
- 役割: コントローラは、ルートによって指定されたロジックを実行する部分です。ユーザーからのリクエストを処理し、ビューを返したり、データベースとのやり取りを行ったりします。
- 仕組み: コントローラには複数のメソッドがあります。それぞれが特定の動作(例えばログイン処理やデータの表示)を担当します。
- 例:
php
class AuthController extends Controller
{
public function showLoginForm()
{
return view('auth.login');
}
public function login(Request $request)
{
// ログイン処理のロジック
}
}
-
showLoginForm
はログインページを表示し、login
はユーザーのログイン処理を行います。
3. モデル (Model)
- 役割: モデルは、データベースのテーブルを表現し、そのデータにアクセスするための窓口となる部分です。Laravelでは、主にEloquentというORM(Object-Relational Mapping)を使ってデータベース操作を行います。
- 仕組み: モデルはテーブルと1対1で対応づけられ、テーブルのデータに対する処理(作成、取得、更新、削除など)を簡単に行えるようになっています。
- 例:
php
class User extends Model
{
protected $fillable = ['name', 'email', 'password'];
}
-
User
モデルは、通常、users
テーブルと対応します。$fillable
は、配列内のプロパティを一括代入可能にする設定です。
組み合わせ
- ブラウザでユーザーが
/login
にアクセスすると、ルートがAuthController
のshowLoginForm
メソッドを呼び出します。 -
showLoginForm
メソッドがログインページを表示します。 - その後、ユーザーがログインフォームを送信すると、
login
メソッドが呼び出され、User
モデルを使ってデータベースのユーザー情報を確認し、認証を行うことができます。
このように、ルート、コントローラ、モデルが協力して、ユーザーの操作を管理し、アプリケーションの動作を実現しています。Breezeを使うと、これらの基本構造が自動生成されるため、初心者でもすぐに認証機能を実装し始めることができます。