라라벨 설치를 완료했으면 User 폴더에 blog 폴더에 생겼을겁니다.
그러면 그 안에
이렇게 파일들이 생성됐을겁니다.
그 다음 visual studio code를 이용해
resources >> views >> welcome.blade.php 파일을 열어줍시다.
그러면 코드가 쭉 나올텐데 거기서
<div class="title m-b-md">
Laravel
</div>
이 부분을 찾아줍시다.
그리고 주소창에 http://localhost:8000/ 을 입력하시면
저렇게 화면이 나오실텐데
방금 찾아둔 div 박스의 Laravel을 지워주고 Hello World~ 를 입력해줍시다.
그럼 Lalavel 부분이 방금 입력한 Hello World로 바뀐 것을 볼 수 있습니다.
일반적으로 php를 사용해보셨다면 http://localhost:8000/welcome.blade.php
이런 식으로 입력해야 화면이 뜨시는 걸 알고있으실겁니다.
하지만 라라벨은 다르네요.
routes 폴더의 web.php 파일을 열어줍니다.
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
그러면 이렇게 코딩이 되어있을겁니다.
여기서 보시면 '/'으로 홈페이지로 접근한 것을 확인할 수는 있는데 그 어디에서 welcome.blade.php가 보이지 않습니다.
return view('welcome')을 보시면 welcome이 있습니다.
view('welcome')이 welcome.blade.php의 역활을 하는 것입니다.
확실하게 확인하기 위해서
resources >> views 폴더에 index.blade.php 파일을 만들어줍니다.
<!DOCTYPE html>
<html lang="kr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Hello World~</h1>
</body>
</html>
이렇게 입력을 하고
web.php 파일을 다음과 같이 수정해줍니다.
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('index');
});
예상이 맞다면 welcome.blade.php 파일이 아닌 index.blade.php 파일이 열려
화면에는 그냥 Hello World~ 가 출력 될 것입니다.
기존에 나왔던 화면이 사라지고 Hello World~ 만 출력되는 것을 확인할 수 있습니다.
<!DOCTYPE html>
<html lang="kr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
{{$hello}}
</body>
</html>
body 태그 안에 {{$hello}} 이렇게 입력해줍니다.
{{ }} 이것은 php에서 <?= ?> 이것과 똑같은 역할을 합니다.
그리고 web.php 파일을 다음과 같이 수정해줍니다.
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
$hello = 'Hello World';
return view('index') -> with('hello',$hello);
});
이렇게 바꾸어 줬을때 화면에 출력돼야 하는 문구는 Hello World입니다.
확인해봅시다.
정상 적으로 출력됩니다.
다른 방법으로
<?php
Route::get('/', function () {
$hello = 'Hello World';
return view('index',compact('hello'));
});
이렇게도 가능합니다.
<!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>Document</title>
</head>
<body>
{{$hello}} {{$name}}
</body>
</html>
이번에는 이렇게 입력해주고
web.php를 아래와 같이 바꿔줍니다.
<?php
Route::get('/', function () {
return view('index') -> with([
'hello' => 'Hello~',
'name' => 'Hong'
]);
});
이번에는 $hello와 $name을 만들어 화면에 출력합니다.
정상 출력 됩니다.
다른 방법으로
view()의 두 번째 인자로 주어도 같은 결과를 얻을 수 있습니다.
<?php
Route::get('/', function () {
return view('index',[
'hello' => 'Hello~',
'name' => 'Hong'
]);
});
마지막으로 하나의 변수에 저장하여 사용할 수 있습니다.
<?php
Route::get('/', function () {
$index = view('index');
$index -> hello = 'Hello World';
$index -> name = 'Hong';
return $index;
});
다음에는 블레이드 관련 문법으로 포스팅하겠습니다.
기존 PHP만 써보고 라라벨을 쓰니까 전혀 다른 언어같네요...
'IT > PHP' 카테고리의 다른 글
PHP/Laravel(4) 컴포넌트&슬롯 (0) | 2020.02.20 |
---|---|
PHP/Laravel(3) blade 문법 (0) | 2020.02.20 |
PHP/Laravel(1) 설치하기 (0) | 2020.02.19 |
PHP(11) 리뷰 수정, 삭제 (0) | 2020.02.19 |
PHP(10) 이미지 업로드 (3) | 2020.02.17 |
댓글