controller

Route::get('/','WelcomeController@index');

web.php์—์„œ ๋ผ์šฐํŒ…์„ ํ• ๋•Œ ์ฝœ๋ฐฑํ•จ์ˆ˜๋กœ ๊ตฌ๋ฌธ์„ ์ฒ˜๋ฆฌํ–ˆ์—ˆ๋Š”๋ฐ, ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์œ„์ž„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ปจํŠธ๋กค๋Ÿฌ ์ด๋ฆ„@๋ฉ”์„œ๋“œ๋ช…์„ ๋‘๋ฒˆ์งธ ์ธ์ž๋กœ ์ฃผ๋ฉด ๋œ๋‹ค.

์ปจํŠธ๋กค๋Ÿฌ ๋งŒ๋“ค๊ธฐ

$ php artisan make:controller WelcomeController

artisan์œผ๋กœ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋งŒ๋“ค๋ฉด App\Http\Controllers ๋ฐ‘์— ์ปจํŠธ๋กค๋Ÿฌ์‚ฌ ์ƒ์„ฑ์ด ๋œ๋‹ค.

<?php
namespace App\Http\Controllers;

class WelcomeController extends Controller
{
    public function index(){
        return view('welcome');
    }
}

Restful ๋ฆฌ์†Œ์Šค ์ปจํŠธ๋กค๋Ÿฌ

php artisan make:controller ArticlesController --resource ๋ช…๋ น์–ด๋กœ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด index(), create(), store(),show(), edit(), update(), destroy() ๋ฉ”์„œ๋“œ๋“ค์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ƒ์„ฑ์ด ๋œ๋‹ค.

  • index() : ์กฐํšŒ

  • store() : ์ƒˆ ๋ชจ๋ธ ์ƒ์„ฑ

  • create() : ์ƒˆ ๋ชจ๋ธ ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•œ ํผ

  • show() : ๊ธฐ๋ณธํ‚ค ๊ฐ’์„ ๊ฐ€์ง„ ๋ชจ๋ธ ์กฐํšŒ

  • update() : ๊ธฐ๋ณธํ‚ค๊ฐ’์„ ๊ฐ€์ง„ ๋ชจ๋ธ ๊ฐ’ ์ˆ˜์ •

  • edit() : ๊ธฐ๋ณธํ‚ค ๊ฐ’์„ ๊ฐ€์ง„ ๋ชจ๋ธ ์ˆ˜์ •๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•œ ํผ

  • delete() : ๊ธฐ๋ณธํ‚ค ๊ฐ’์„ ๊ฐ€์ง„ ๋ชจ๋ธ ๊ฐ’ ์‚ญ์ œ

post๋ฐฉ์‹์˜ http์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ๋ผ๋ผ๋ฒจ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฏธ๋“ค์›จ์–ด์—์„œ csrf๊ณต๊ฒฉ์„ ๋ง‰๊ณ ์ž ํ† ํฐ(_token)์ด ์กด์žฌํ•˜๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๊ณ  ์—†์œผ๋ฉด ์˜ˆ์™ธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ VerifyCsrfToken.php์—์„œ ํŠน์ • uri๋ฅผ ์ œ์™ธ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

Route::resource('articles','AritclesController');

๋ฆฌ์†Œ์Šค ์ปจํŠธ๋กค๋Ÿฌ๋Š” get()์ด ์•„๋‹ˆ๋ผ resource()๋ฅผ ์ด์šฉํ•˜๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํด๋ž˜์Šค๋ช…๋งŒ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

๋ฒˆ์™ธ) csrf ๋ณดํ˜ธ ๋™์ž‘ ๋ฐฉ์‹

  1. ์ปจํŠธ๋กค๋Ÿฌ์˜ create()์™€ ๊ฐ™์€ ๋ฉ”์„œ๋“œ์—์„œ ์ˆจ์€ ํ•„๋“œ๋กœ _token๊ฐ’์„ ๋‹ด์•„ ์ƒˆ๋กœ์šด ํผ์„ ์‘๋‹ตํ•œ๋‹ค.

  2. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ _token ํ•„๋“œ๋ฅผ http์š”์ฒญ ๋ณธ๋ฌธ์— ๋‹ด์•„ post articles์š”์ฒญ์„ ํ•œ๋‹ค.

  3. ๋ผ์šฐํ„ฐ๊ฐ€ ์ปจํŠธ๋กค๋Ÿฌ์—๊ฒŒ ์ž‘์—…์„ ํ• ๋‹นํ•˜๊ธฐ ์ „์— ๋ฏธ๋“ค์›จ์–ด ๊ทธ๋ฃน์„ ์‹คํ–‰ํ•œ๋‹ค.

  4. csrf ํ† ํฐ ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ํผ์„ ์‘๋‹ตํ–ˆ๋˜ ์„ธ์…˜์—์„œ ๋งŒ๋“  _token๊ณผ ์ง€๊ธˆ ์š”์ฒญ์œผ๋กœ ๋ฐ›์€ _token์„ ๋น„๊ตํ•œ๋‹ค.

  5. ํ†ต๊ณผํ•˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋ฉ”์„œ๋“œ์—๊ฒŒ ์ž‘์—…์„ ์œ„์ž„ํ•˜๊ณ  ์•„๋‹ˆ๋ฉด ์˜ˆ์™ธ๋ฅผ ๋˜์ง„๋‹ค.

๋ผ์šฐํŠธ ํ™•์ธ

$ php artisan route:list

์œ„ ๋ช…๋ น์–ด๋กœ ํ˜„์žฌ ๋ผ์šฐํŠธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ํ•ญ๋ชฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Domain : Url๊ฒฝ๋กœ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋„๋ฉ”์ธ์— ๋”ฐ๋ผ ๋ผ์šฐํŒ…๋„ ๋ถ„๋ฆฌ๊ฐ€๋Šฅ

  • Method : http ์š”์ฒญ ๋ฉ”์„œ๋“œ

  • URI : ๊ฒฝ๋กœ

  • name : ๋ผ์šฐํŠธ ์ด๋ฆ„(๋ณ„์นญ)

  • Action : ๋ผ์šฐํŒ…์„ ์ฒ˜๋ฆฌํ•  ์ปจํŠธ๋กค๋Ÿฌ์™€ ๋ฉ”์„œ๋“œ

  • Middleware : ๋ผ์ดํ‰์— ์ ์šฉํ•  ์ „์—ญ ๋ฏธ๋“ค์›จ์–ด, http ๋ฏธ๋“ค์›จ์–ด

Last updated