>백엔드 개발 >PHP 튜토리얼 >Laravel 5 프레임워크 시작하기 (3)_php 예제

Laravel 5 프레임워크 시작하기 (3)_php 예제

WBOY
WBOY원래의
2016-05-16 20:17:552255검색

이 튜토리얼에서는 Laravel 5의 기본 인증 시스템을 사용하여 백엔드에 대한 권한을 확인하고 페이지를 표시하는 프런트엔드 페이지를 구축합니다.

1.권한 확인

백그라운드 주소는 http://localhost:88/admin이며 모든 백그라운드 작업은 이 페이지 또는 해당 하위 페이지에서 수행됩니다. Laravel 5에서 제공하는 Auth를 사용하여 권한 확인 기능을 구현하려면 라우팅 코드의 일부만 변경하면 됩니다.

먼저 라우팅 그룹의 코드를 다음으로 변경합니다.

코드 복사 코드는 다음과 같습니다.

Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => 'auth'], function()
{
경로::get('/', 'AdminHomeComtroller@index');
경로::resource('pages', 'PagesController');
});

위 코드에는 단 한 가지 변경 사항이 있습니다. `Route::group()`의 첫 번째 매개변수(배열)에 `'middleware' => 'auth'`를 추가하는 것입니다. 이제 http://localhost:88/admin을 방문하면 로그인 페이지로 리디렉션됩니다. 점프가 없으면 당황하지 말고 오른쪽 상단에서 나갔다가 다시 들어가세요.

저희 개인 블로그 시스템은 임의로 회원가입을 허용하지 않습니다. 아래에서는 라우팅 코드 중 일부를 변경하고 기본 로그인 및 로그아웃 기능만 유지합니다.

삭제:

코드 복사 코드는 다음과 같습니다.

경로::컨트롤러([
'auth' => 'AuthAuthController',
'password' => 'AuthPasswordController',
]);

추가됨:

코드 복사 코드는 다음과 같습니다.

경로::get('auth/login', 'AuthAuthController@getLogin');
경로::post('auth/login', 'AuthAuthController@postLogin');
경로::get('auth/logout', 'AuthAuthController@getLogout');

권한 확인 최소화 기능을 갖춘 백엔드가 완성되었습니다. 현재 이 백엔드는 페이지 리소스만 관리하고 있습니다. 다음으로 첫 페이지를 만들고 페이지를 표시하겠습니다.

2. 홈페이지 구축

먼저 라우팅 코드를 정리하고 라우팅의 맨 위 두 줄을 변경합니다.

코드 복사 코드는 다음과 같습니다.

경로::get('/', 'WelcomeController@index');
경로::get('홈', 'HomeController@index');

다음으로 변경:

코드 복사 코드는 다음과 같습니다.

경로::get('/', 'HomeController@index');

첫 페이지 표시를 지원하기 위해 HomeController를 직접 사용할 것입니다.

이때 learnlaravel5/app/Http/Controllers/WelcomeController.php 컨트롤러 파일과 learnlaravel5/resources/views/welcome.blade.php 뷰 파일을 삭제할 수 있습니다.

learnlaravel5/app/Http/Controllers/HomeController.php를 다음으로 수정하세요.

<&#63;php namespace App\Http\Controllers;

use App\Page;

class HomeController extends Controller {

 public function index()
 {
 return view('home')->withPages(Page::all());
 }

}

컨트롤러 구축이 완료되었습니다.

`view('home')->withPages(Page::all())` 이 문장은 다음 기능을 구현합니다.

learnlaravel5/resources/views/home.blade.php 보기 파일 렌더링
$pages 변수를 뷰에 전달합니다. $pages = Page::all()
Page::all()은 Eloquent의 all() 메소드를 호출하고 페이지 테이블의 모든 데이터를 반환합니다.
다음으로 뷰 파일 작성을 시작합니다.

먼저 '93f0f5c25f18dab9d176bd4f6de5d30e' 부분과 '#footer' 부분이라는 프런트엔드 페이지의 통합 셸을 만듭니다. 새로운 learnlaravel5/resources/views/_layouts/default.blade.php 파일을 생성하세요(폴더를 직접 생성해주세요):

<!DOCTYPE html>
<html lang="zh-CN">
<head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <title>Learn Laravel 5</title>

 <link href="/css/app.css" rel="stylesheet">

 <!-- Fonts -->
 <link href='http://fonts.useso.com/css&#63;family=Roboto:400,300' rel='stylesheet' type='text/css'>
</head>
<body>

 <div class="container" style="margin-top: 20px;">
  @yield('content')
  <div id="footer" style="text-align: center; border-top: dashed 3px #eeeeee; margin: 50px 0; padding: 20px;">
   &copy;2015 <a href="http://lvwenhan.com">JohnLui</a>
  </div>
 </div>


</body>
</html>

learnlaravel5/resources/views/home.blade.php 파일을 다음과 같이 수정합니다.

@extends('_layouts.default')

@section('content')
 <div id="title" style="text-align: center;">
 <h1>Learn Laravel 5</h1>
 <div style="padding: 5px; font-size: 16px;">{{ Inspiring::quote() }}</div>
 </div>
 <hr>
 <div id="content">
 <ul>
  @foreach ($pages as $page)
  <li style="margin: 50px 0;">
  <div class="title">
   <a href="{{ URL('pages/'.$page->id) }}">
   <h4>{{ $page->title }}</h4>
   </a>
  </div>
  <div class="body">
   <p>{{ $page->body }}</p>
  </div>
  </li>
  @endforeach
 </ul>
 </div>
@endsection

第一行 `@extends('_layouts.default')` 代表这个页面是 learnlaravel5/resources/views/_layouts/default.blade.php 的子视图。此时 Laravel 的 视图渲染系统会首先载入父视图,再将此视图中的 @section('content') 里面的内容放入到父视图中的 @yield('content') 处进行渲染。

访问 http://localhost:88/ ,可以得到如下页面:

2. 构建 Page 展示页

首先增加路由。在路由文件的第一行下面增加一行:

复制代码 代码如下:

Route::get('pages/{id}', 'PagesController@show');

新建控制器 learnlaravel5/app/Http/Controllers/PagesController.php,负责单个 page 的展示:

<&#63;php namespace App\Http\Controllers;

use App\Page;

class PagesController extends Controller {

 public function show($id)
 {
  return view('pages.show')->withPage(Page::find($id));
 }

}

新建视图 learnlaravel5/resources/views/pages/show.blade.php 文件:

@extends('_layouts.default')

@section('content')
 <h4>
  <a href="/">&#11013;&#65039;返回首页</a>
 </h4>

 <h1 style="text-align: center; margin-top: 50px;">{{ $page->title }}</h1>
 <hr>
 <div id="date" style="text-align: right;">
  {{ $page->updated_at }}
 </div>
 <div id="content" style="padding: 50px;">
  <p>
   {{ $page->body }}
  </p>
 </div>
@endsection

全部完成,检验成果:点击首页之中任意一篇文章的标题,进入文章展示页,你会看到以下页面:

至此,前台展示页面全部完成,教程三结束。

以上所述就是本文的全部内容了,希望能够对大家学习Laravel5框架有所帮助。

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