이 튜토리얼에서는 Laravel 5의 기본 인증 시스템을 사용하여 백엔드에 대한 권한을 확인하고 페이지를 표시하는 프런트엔드 페이지를 구축합니다.
1.권한 확인
백그라운드 주소는 http://localhost:88/admin이며 모든 백그라운드 작업은 이 페이지 또는 해당 하위 페이지에서 수행됩니다. Laravel 5에서 제공하는 Auth를 사용하여 권한 확인 기능을 구현하려면 라우팅 코드의 일부만 변경하면 됩니다.
먼저 라우팅 그룹의 코드를 다음으로 변경합니다.
위 코드에는 단 한 가지 변경 사항이 있습니다. `Route::group()`의 첫 번째 매개변수(배열)에 `'middleware' => 'auth'`를 추가하는 것입니다. 이제 http://localhost:88/admin을 방문하면 로그인 페이지로 리디렉션됩니다. 점프가 없으면 당황하지 말고 오른쪽 상단에서 나갔다가 다시 들어가세요.
저희 개인 블로그 시스템은 임의로 회원가입을 허용하지 않습니다. 아래에서는 라우팅 코드 중 일부를 변경하고 기본 로그인 및 로그아웃 기능만 유지합니다.
삭제:
추가됨:
권한 확인 최소화 기능을 갖춘 백엔드가 완성되었습니다. 현재 이 백엔드는 페이지 리소스만 관리하고 있습니다. 다음으로 첫 페이지를 만들고 페이지를 표시하겠습니다.
2. 홈페이지 구축
먼저 라우팅 코드를 정리하고 라우팅의 맨 위 두 줄을 변경합니다.
첫 페이지 표시를 지원하기 위해 HomeController를 직접 사용할 것입니다.
이때 learnlaravel5/app/Http/Controllers/WelcomeController.php 컨트롤러 파일과 learnlaravel5/resources/views/welcome.blade.php 뷰 파일을 삭제할 수 있습니다.
learnlaravel5/app/Http/Controllers/HomeController.php를 다음으로 수정하세요.
<?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?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;"> ©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 展示页
首先增加路由。在路由文件的第一行下面增加一行:
新建控制器 learnlaravel5/app/Http/Controllers/PagesController.php,负责单个 page 的展示:
<?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="/">⬅️返回首页</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框架有所帮助。