
1. Controller
"로직을 처리하는 부분"
"사용자 요청을 받아 모델(Model)과 상호작용하고, 결과를 뷰(View)나 JSON으로 반환하는 '중간 관리자' 역할을 수행"
1.1 컨트롤러 생성
php artisan make:controller PostController
# INFO Controller [app/Http/Controllers/PostController.php] created successfully.
생성위치 app/Http/Controllers/PostController.php
1.2 컨트롤러 구조
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ShipmentController extends Controller
{
//
}
1.3 Route 와 Controller
Route::get('/posts', [ShipmentController::class, 'index']); // 목록
Route::get('/posts/create', [ShipmentController::class, 'create']); // 작성폼
Route::post('/posts', [ShipmentController::class, 'store']); // 저장
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ShipmentController extends Controller
{
public function index(Request $request)
{
return 'Posts List'
}
public function create(Request $request)
{
return 'Post Form'
}
public function store(Request $request)
{
return 'Post Save'
}
}
* Request $request 설명
"Request는 사용자가 보낸 모든 데이터를 담고 있는 객체"
# 일반적인 방식
$request->title
# 추천하는 방식
$request->input('title')
# 모든 데이터
$request->all()
기타사용자정보
$request->ip();
$request->getClientIp();
1.4 __invoke 단일 작업 컨트롤러 (Single Action Controller)
특정 컨트롤러가 하나의 기능(예: 대시보드 표시, 결제 처리 등)만 수행한다면 여러 메서드를 만들 필요가 없습니다.
이때 __invoke 메서드를 사용합니다.
// 단일작업 컨트롤러 생성
php artisan make:controller CarController --invokable
생성된 모양
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ShipmentController extends Controller
{
/**
* Handle the incoming request.
*/
public function __invoke(Request $request)
{
//
}
}
사용시 function 을 지정하지 않고 사용합니다.
Route::get('/', ShipmentController::class);
"Laravel is an object-oriented (OOP) based framework, and all functions are composed of classes."
“Laravel은 객체지향(OOP) 기반 프레임워크이며, 모든 기능은 Class로 구성되어 있다”
<?php
class ShipmentController extends Controller
<?php
class User extends Model
그외에도 서비스, 미들웨어 등도 모두 class 로 되어있습니다.
클래스는
1. 재사용 가능
→ 같은 코드를 여러 곳에서 사용
2. 구조화
→ 역할별로 나누기 쉬움
3. 확장성
→ 기능을 추가하기 쉬움
클래스 vs 객체
클래스는 설계도이고, 객체는 그 설계도대로 사용되는것
중요한 이야기는 나중에 모델을 공부할때 하도록 하겠습니다.
RESTful
'Hokma School :: Course 2 Laravel' 카테고리의 다른 글
| Laravel 07. Form / Validation + git clone laravel project (0) | 2026.04.28 |
|---|---|
| Laravel 06. Eloquent ORM (0) | 2026.04.24 |
| Laravel 04. Blade Templete (0) | 2026.04.13 |
| Laravel 02. Routing (1) | 2026.04.10 |
| Laravel 01. 라라벨 소개와 설치 (0) | 2026.04.08 |