컨트롤러는 MVC 패턴의 구성 요소로 입력된 정보를 처리하고
모델을 호출하고 뷰를 생성하여 결과를 전달하는 역할을 수행합니다.
/* web.php */
<?php
Route::get('/', function(){
$foods = [
'Chicken',
'Pie'
];
return view('index',compact('foods'));
});
먼저 web.php에 위와 같이 작성합니다.
$foods 안에 치킨과 파이를 넣고 그 정보를 index.blade.php로 보내줍니다.
{{-- index.blade.php --}}
@extends('layouts.menu')
@section('title')
Welcome
@endsection
@section('content')
<ul>
@foreach ($foods as $food)
<li>{{$food}}</li>
@endforeach
</ul>
@endsection
<!DOCTYPE html>
<html lang="kr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>@yield('title', 'Lalavel')</title>
</head>
<body>
<h1>@yield('title')</h1>
@yield('content')
</body>
</html>
index.blade.php에 위와 같이 입력해줍니다.
아래 코드 블럭은 index.blade.php가 상속 받은 레이아웃 페이지입니다.
@section('content')에서 ul 태그를 사용하고 web.php 보낸 $foods를 foreach 문법으로 화면에 보여줍니다.
그랬을 때 이렇게 화면에 나오는 것을 확인할 수 있습니다.
이제 web.php에서 만든 $foods를 컨트롤러로 만들어 실행시켜 보겠습니다.
먼저 컨트롤러는 app >> Http >> Controllers 폴더 안에 있습니다.
폴더 안에 보시면 Controller.php 파일이 있는데
이 파일 말고 새로 컨트롤러 파일을 만들어보겠습니다.
저는 vscode 에디터에 있는 터미널을 사용해 하겠습니다.
git bash를 쓰시는 분들이나 window cmd 사용하시는 분들도 똑같이 입력하시면 됩니다.
vscode 아래쪽에 있는 터미널에 입력하겠습니다.
php artisan make:controller 이것이 컨트롤러를 만드는 기본 명령어입니다.
그리고 php artisan make:controller ____ 밑줄 부분에 만드실 컨트롤러의 이름을 넣으시면 됩니다.
저는 php artisan make:controller FoodController 이렇게 만들겠습니다.
엔터를 치면 Controller created successfully. 이렇게 문구가 나오고
컨트롤러 폴더에
이렇게 방금 만든 컨트롤러가 생성된 것을 볼 수 있습니다.
파일을 열어보면
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FoodController extends Controller
{
//
}
이렇게 나오실텐데 web.php에서
$foods = [
'Chicken',
'Pie'
];
return view('index',compact('foods'));
이 부분을 복사해 class안에 넣어줍니다.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FoodController extends Controller
{
public function Food(){
$foods = [
'Chicken',
'PiePie'
];
return view('index',compact('foods'));
}
}
class 안에 저렇게 함수를 만들어 그 안에 넣어줍니다.
함수의 이름은 저와 다르게 하셔도 상관 없습니다.
이제 web.php로 가서 다음과 같이 바꿔줍니다.
<?php
Route::get('/', 'FoodController@Food');
FoodController는 컨트롤러를 선택한 것이고 Food는 컨트롤러 안에 있는 함수를 선택했다고 생각하시면 됩니다.
이제 화면 출력이 제대로 되는지 새로고침을 해봅시다.
제대로 작동하는 것을 확인 할 수 있습니다.
이것으로 마치겠습니다.
'IT > PHP' 카테고리의 다른 글
PHP/Laravel(7) 모델 (0) | 2020.02.21 |
---|---|
PHP/Laravel(6) 데이터베이스 연결 및 생성 (0) | 2020.02.21 |
PHP/Laravel(4) 컴포넌트&슬롯 (0) | 2020.02.20 |
PHP/Laravel(3) blade 문법 (0) | 2020.02.20 |
PHP/Laravel(2) welcome.blade.php (0) | 2020.02.19 |
댓글