#7 More about Views

제목 그대로, View에 대해서 더 알아보자.

web.php에 접근하여, 기본URL의 라우터 코드를 다음과 같이 바꿔보자.

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

위 코드의 의미는 이제 쉽게 알 수 있겠지만, PagesController.phpindex Function을 사용한다는 말이다.

그렇다면 터미널을 통해서 PagesController를 만들고 그 안에 index Function을 만들어보자.

$ artisan make:controller PagesController
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

use View;


class PagesController extends Controller
{
    public function index() {

    }
}

app/Http/Controllers/PagesController.php

조금 빠르게 나가보도록 하겠다.

views 디렉토리에 pages란 디렉토리를 추가하고 그 안에 index.blade.php를 만든다.

그리고 컨트롤러에서 연결한다. 이때 주의사항은 View가 존재하는지 안하는지에 대한 경우를 나누어서 처리하는 것이다.

완성된index.blade.php를 살펴보자.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

use View;


class PagesController extends Controller
{
    public function index() {
        if(View::exists('pages.index')){
            return view('pages.index');
        }else {
            return 'No view available';
        }
    }
}

앞의 내용을 잘 이해했다면, 이정도 코드를 짜는 것은 식은죽먹기다.

이제 localhost:8000/으로 접속하면resources/views/pages/index.blade.php가 화면에 뜰 것이다.

이 정도에만 만족하지말고, PagesController에서 해당 페이지로 데이터를 넘기고 받는 연습을 해보자.

PagesController.php의 코드를 다음과 같이 수정한다.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

use View;


class PagesController extends Controller
{
    public function index() {
        if(View::exists('pages.index')){
            return view('pages.index')
                ->with('text','<b>Laravel</b>')
                ->with('name','<b>JeewooYoon</b>')
                ->with(['location' => 'EastAsia', 'country' => 'SouthKorea']);

        }else {
            return 'No view available';
        }
    }
}

정말 직관적으로 짜여진 코드라 이해하기가 쉽다.

view를 띄울때 text라는 변수를 함께 (with) 띄워달라는 요청을 코드로 나타내보았다.

자 그럼 이제 Front단에서 받아보자. index.blade.php를 연다.

Hello, from index in pages folder.

<p>{!! $text !!}</p>
<p>{{ $text }}</p>
{!! $location !!}
{!! $country !!}
{!! $name !!}

변수는 두가지 형태, {!! !!}, {{ }}로 받을 수 있다.

형태는 다양하게 넘길 수 있으므로 자유롭게 코드를 짜면 된다.

results matching ""

    No results matching ""