아무거나

뷰 생성(blade) 및 데이터 표시(템플릿 엔진 활용방법) 본문

PHP/Laravel

뷰 생성(blade) 및 데이터 표시(템플릿 엔진 활용방법)

전봉근 2019. 4. 4. 10:22
반응형

* 뷰 생성 과정(resource/views)

  ----------------------------------------------------------------------------------------------------

  - master 레이아웃 view 파일을 생성(layouts/master.blade.php)

  - 각각의 페이지에 관련된 view 파일을 만들자

    # {pageName}/index.blade.php

    # {pageName}/create.blade.php

    # {pageName}/show.blade.php

    # {pageName}/edit.blade.php

 

  - @extends('view이름') : 해당 view를 확장하는 방법으로 view를 구성

  - @section('section 이름') @stop : 선언된 section 영역을 채우는 시작과 끝을 정한다.

  - 반복문..

  - 블래이드 예제소스

    // 폴더구조

 

    // views/layouts/master.blade.php

    [소스]

    <html>

    <head>

<title>Laravel</title>

.....

....

    </head>

    <body>

    <div class="container">

@yield('content')

    </div>

    </body>

    </html>

 

    // views/post/index.blade.php

    [소스]

    @extends('layouts.master')

    @section('content')

    <h1>All Posts</h1>

<ul class="list-group">

@foreach($posts as $post)

<li class="list-group-item">

<a href="{{ route("post.show", $post->id) }}">{{ $post->title }}</a>

</li>

@endforeach

</ul>

 

{{--{!! $posts->render() !!}--}}

 

<h3>

<a href="{{ route('post.create') }}" class="btn btn-primary">글 작성하기</a>

</h3>

    @stop

    ----------------------------------------------------------------------------------------------------

 

 

1. php artisan make:controller site/MainController 로 메인컨트롤러 생성

 

2. resources/view 에 view생성 ex) main.blade.php 를 생성

   [예제소스]   

<!DOCTYPE>

<html>

<head>

    <title>라라벨테스트</title>

</head>

<body>

<form method="post" action="/todo">

    <label>테스트</label>

    <input type="text" name="title">

    <input type="submit">

</form>

</body>

</html>

 

3. submit을 하면 TokenMismatchException 에러가 표시된다. 왜냐하면 laravel은 기본적으로 크로스사이트요청 위조를 방지하기 위해서 

   자체적으로 토큰을 쓴다 그러므로 모든 post로 날리는것은 token을 포함시켜줘야 한다.

   - <input type="hidden" name="_token" value="{{ csrf_token() }}">

 

4. Request로 이용하여 TodoController 에서 store 메서드로 넘어온 값들을 확인하자

   [소스]

    public function store(Request $request) {

        dd($request->all());

    }

    // 그럼 아래와 같이 표시된다.

array:2 [▼

  "_token" => "CMZo23bKjfi6xMID0PZo2oqQ9mU0rTEvCbQ342PZ"

  "title" => "456"

]

 

5. Request 다른 방법(laravel4 부터 이 방법을 밀어주는듯..)

   - Request 파사드를 사용한다

     [소스내용]

use Request;

 

    public function store(Request $request) {

        dd($request::all());

    }

 

반응형

'PHP > Laravel' 카테고리의 다른 글

validator(유효성검증)  (0) 2019.04.04
옐로퀀트ORM 활용  (0) 2019.04.04
마이그레이션  (0) 2019.04.03
XSS 적용 방법  (0) 2019.04.03
laravel 설치 php7.1+homestead  (0) 2019.03.28
Comments