MVCアーキテクチャ
Laravel MVCアーキテクチャ
Section titled “Laravel MVCアーキテクチャ”モデル(Model)
Section titled “モデル(Model)”<?phpnamespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model{ protected $fillable = ['name', 'email', 'password'];
protected $hidden = ['password', 'remember_token'];
// リレーション public function posts() { return $this->hasMany(Post::class); }}ビュー(View)
Section titled “ビュー(View)”{{-- resources/views/users/index.blade.php --}}@extends('layouts.app')
@section('content') <h1>Users</h1> <ul> @foreach($users as $user) <li>{{ $user->name }} - {{ $user->email }}</li> @endforeach </ul>@endsectionコントローラー(Controller)
Section titled “コントローラー(Controller)”<?phpnamespace App\Http\Controllers;
use App\Models\User;use Illuminate\Http\Request;
class UserController extends Controller{ public function index() { $users = User::all(); return view('users.index', compact('users')); }
public function store(Request $request) { $validated = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|min:8', ]);
$user = User::create($validated); return redirect()->route('users.index'); }}ルーティング
Section titled “ルーティング”<?phpuse App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index'])->name('users.index');Route::post('/users', [UserController::class, 'store'])->name('users.store');
// リソースルートRoute::resource('users', UserController::class);