>  기사  >  백엔드 개발  >  Laravel 5 기본 사항(3) - 뷰에 데이터 전달

Laravel 5 기본 사항(3) - 뷰에 데이터 전달

WBOY
WBOY원래의
2016-08-08 09:26:53944검색
  • Routes.php에서 새로운 경로를 생성합니다
<code>Route::get('about', 'PagesController@about');</code>

브라우저에서 탐색할 때 오류가 발생합니다. 오류 메시지는 단지 프롬프트 메시지일 뿐이며, 프로덕션 환경에서는 괜찮지만, 개발 단계에서 자세한 정보를 얻을 수 있기를 바랍니다.

  • 프로젝트 루트 디렉터리에서 .env 파일을 찾아 수정하세요
<code>APP_DEBUG=true</code>

이렇게 하면 PagesController가 존재하지 않는다는 자세한 오류 메시지가 표시됩니다. 하지만 프로덕션 환경에서는 false로 설정해야 합니다

  • 새 컨트롤러를 수동으로 생성할 수도 있지만, laravel에서 제공하는 생성기를 사용하는 것이 더 빠른 방법입니다. 명령줄을 통해 현재 프로젝트 디렉터리에서 실행:
<code>php artisan</code>

laravel에서 제공하는 기능을 보실 수 있습니다.

<code>php artisan make:controller PagesController</code>

좋아, PagesController.phpapp->http->controller

아래에 생성됩니다.
<code><?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class PagesController extends Controller {

	/**
	 * Display a listing of the resource.
	 *
	 * @return Response
	 */
	public function index()
	{
		//
	}

	/**
	 * Show the form for creating a new resource.
	 *
	 * @return Response
	 */
	public function create()
	{
		//
	}

	/**
	 * Store a newly created resource in storage.
	 *
	 * @return Response
	 */
	public function store()
	{
		//
	}

	/**
	 * Display the specified resource.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function show($id)
	{
		//
	}

	/**
	 * Show the form for editing the specified resource.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function edit($id)
	{
		//
	}

	/**
	 * Update the specified resource in storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function update($id)
	{
		//
	}

	/**
	 * Remove the specified resource from storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function destroy($id)
	{
		//
	}

}</code>

이런 방식으로 생성된 컨트롤러에는 필요한 모든 RESTful 메서드가 포함되어 있으므로 단순화할 수 있습니다. 생성된 PagesController.php를 삭제하고 명령줄에서 실행합니다.

<code>php artisan make:controller PagesController --plain</code>

생성된 결과를 다시 살펴보세요

<code><?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class PagesController extends Controller {

	//

}</code>

기본적으로 빈 컨트롤러이므로 모든 메서드를 직접 만들어야 합니다.

명령줄에서 실행할 수 있는 매개변수를 알고 싶다면 다음 명령을 실행하여 도움말을 볼 수 있습니다

<code>php artisan help make:controller</code>

알겠습니다. help 명령을 사용하면 이러한 매개변수를 이해하는 데 도움이 되는 경우가 많습니다.

  • PagesController에서 about 메소드를 설정합니다.
<code>	public function about() {
        return &#39;About Page&#39;;
    }</code>

브라우저에서 결과를 보면 오류가 사라지고 간단한 정보가 반환됩니다.

  • 보기로 돌아가기

물론 html 문서를 반환하고 about 메소드의 반환을 수정하려고 합니다.

<code>	public function about() {
        return view(&#39;pages.about&#39;);
    }</code>

참고: 반환된 결과는 pages.about 입니다. 이는 views 하위 디렉터리 내의 pages 하위 디렉터리에 있는 about.balde.php 파일을 의미합니다. resourcesviewspagesabout.balde.php 파일

을 만들어 보겠습니다.
<code><!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<h1>About</h1>
</body>
</html></code>

브라우저를 실행해 보세요.

  • 뷰로 데이터 전송

PagesController.php 수정

<code>	public function about() {
        $name = 'Zhang Jinlgin';
        return view('pages.about')->with('name', $name);
    }</code>

about.blade.php 보기 파일 수정

<code><h1>About <?= $name ?></h1></code>

빙고, 결과를 확인해보세요.

우리가 사용하는 laravel은 블레이드 템플릿을 사용하므로 이 이점을 사용하여 뷰를 수정할 수 있습니다.

<code><h1>About {{ $name }}</h1></code>

블레이드에서 {{}}는 html의 의미를 벗어났습니다.

<code>$name = '<span style="color: red">Zhang Jinlgin</span>';</code>

결과를 보고 모든 HTML 요소가 이스케이프되었음을 확인합니다. 하지만 HTML을 벗어날 필요가 없다면 {!! !!}를 사용하여 뷰를 수정할 수 있습니다.

<code><h1>About {!! $name !!}</h1></code>

결과를 다시 보시죠,??

이상으로 Laravel 5(3)의 기본 사항을 소개했습니다. 뷰에 데이터를 전송하는 내용과 그 내용이 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.