Laravel 4 초급 튜 토리 얼 의 페이지,폼 검증

1.페이지 관리 기능 구축
실행 명령:

php artisan generate:controller admin/PagesController
PagesController.php 내용 수정:

<?php
namespace App\Controllers\Admin;
use Page;
use Input, Notification, Redirect, Sentry, Str;
use App\Services\Validators\PageValidator;
class PagesController extends \BaseController {
    public function index()
    {
        return \View::make('admin.pages.index')->with('pages', Page::all());
    }
    public function show($id)
    {
        return \View::make('admin.pages.show')->with('page', Page::find($id))->withAuthor(Sentry::findUserById(Page::find($id)->user_id)->name);
    }
    public function create()
    {
        return \View::make('admin.pages.create');
    }
    public function store()
    {
        $validation = new PageValidator;
        if ($validation->passes())
        {
      $page          = new Page;
      $page->title   = Input::get('title');
      $page->body    = Input::get('body');
      $page->user_id = Sentry::getUser()->id;
            $page->save();
            Notification::success(' !');
            return Redirect::route('admin.pages.edit', $page->id);
        }
        return Redirect::back()->withInput()->withErrors($validation->errors);
    }
    public function edit($id)
    {
        return \View::make('admin.pages.edit')->with('page', Page::find($id));
    }
    public function update($id)
    {
        $validation = new PageValidator;
        if ($validation->passes())
        {
      $page          = Page::find($id);
      $page->title   = Input::get('title');
      $page->body    = Input::get('body');
      $page->user_id = Sentry::getUser()->id;
            $page->save();
            Notification::success(' !');
            return Redirect::route('admin.pages.edit', $page->id);
        }
        return Redirect::back()->withInput()->withErrors($validation->errors);
    }
    public function destroy($id)
    {
        $page = Page::find($id);
        $page->delete();
        Notification::success(' !');
        return Redirect::route('admin.pages.index');
    }
}
그리고http://localhost:8000/admin페이지 를 열 고 이전에 seed 가 들 어간 계 정 비밀번호 로 로그 인 하면 우 리 는 오 류 를 얻 을 수 있 습 니 다.

Class App\Controllers\Admin\PagesController does not exist
이 서 류 는 분명히 이미 있 는데,왜 Laravel 은 없다 고 잘못 보 고 했 습 니까?!이 유 는 두 번 째 튜 토리 얼 에서 제 가 여기 서 직접 말씀 드 리 겠 습 니 다.이 종 류 는 최고급 네 임 스페이스 에 있 지 않 기 때문에 우 리 는 Laravel 에 게 우리 가 이미 하나의 네 임 스페이스 에 있 는 종 류 를 새로 추가 했다 고 말 하지 않 았 다.우 리 는 지금 그것 에 게 알려 준다.

composer dump-autoload
OK,새로 고침,우 리 는 다음 과 같은 오 류 를 얻 을 수 있 습 니 다.

View [admin.pages.index] not found.
이 럴 때 내 보기 의 모든 페이지 폴 더 를 복사 하 세 요.
경신당신 은 다음 과 같은 실 수 를 얻 을 수 있 습 니 다.

Class 'Notification' not found
이것 은 우리 가 아직 이 composer 가방 을 설치 하지 않 았 기 때 문 입 니 다.edvinaskrucas/notification 은 3.0.1 버 전(4 는 Laravel 5 를 위 한 것)을 자체 적 으로 설치 하 십시오.이것 은 세 번 째 작은 작업 입 니 다.require 에 넣 어야 합 니 다.require-dev 에 있 는 가방 은 개발 할 때 만 사용 합 니 다.
여기 Notification 은 더 좋 은 알림 구성 요소 입 니 다.
이 포장 을 다 한 후에 운행:

composer dump-autoload
그리고 config/app.php 에 적당 한 위 치 를 각각 다음 두 줄 씩 추가 합 니 다.

'Krucas\Notification\NotificationServiceProvider'

'Notification' => 'Krucas\Notification\Facades\Notification'
적당 한 위치 에 많은 사람들 이 이해 하지 못 해서 많은 사람들 이 실 수 를 했 고 해결 방식 도 간단 합 니 다.제 예시 코드 를 직접 참고 하 십시오.https://github.com/johnlui/Learn-Laravel-4/blob/master/app/config/app.php
새로 고침,아래 화면 을 보면:

축하합니다~페이지 관리 페이지 가 완성 되 었 습 니 다!
2.폼 검증
Laravel 은 원래 사용 하기 좋 은 폼 검증 기능 을 제공 합 니 다.그러나 가끔 은 검증 규칙 을 재 활용 해 야 하기 때문에 우 리 는 강력 한 네 임 스페이스 를 이용 하여 코드 재 활용 을 실현 할 것 입 니 다.또한 Laravel 이외 의 PHP 네 임 스페이스 가 가 져 온 강력 한 구성 요소 화 기능 과 모듈 디 결합,HMVC 등 은 이미 낙후 되 었 습 니 다.
새 app/services/vaidators 2 급 폴 더 를 만 들 고 composer.json 의 autoload>classmap 에서 마지막 으로 추가 합 니 다.

"app/services"
이것 은 coposer 에 게 내 아래 의 모든 파일 과 하위 폴 더 의 모든 파일 을 네 임 스페이스 트 리 에 통합 하 라 고 말 하 는 것 입 니 다!이렇게 하면 app/services 의 클래스 가 자신의 네 임 스페이스 를 설명 할 수 있 고 하위 폴 더 의 파일 도 자신 이 하위 네 임 스페이스 에 속 한 다 는 것 을 설명 할 수 있 습 니 다.이 폴 더 는 우리 의 폼 검증 클래스 를 불 러 올 것 입 니 다.물론 많은 다른 구성 요소 와 모듈 을 불 러 와 서 완전한 결합 을 실현 할 수 있 습 니 다.
추가 완료 후 새 app/services/validators/Validator.php 파일:

<?php
namespace App\Services\Validators;
abstract class Validator {
    protected $data;
    public $errors;
    public static $rules;
    public function __construct($data = null)
    {
        $this->data = $data ?: \Input::all();
    }
    public function passes()
    {
        $validation = \Validator::make($this->data, static::$rules);
        if ($validation->passes()) return true;
        $this->errors = $validation->messages();
        return false;
    }
}
새 app/services/validators/pageValidator.php 파일:

<?php
namespace App\Services\Validators;
class PageValidator extends Validator {
    public static $rules = array(
        'title' => 'required',
        'body'  => 'required',
    );
}
그리고 실행:

composer dump-autoload
이 럴 때 전체 페이지 의 모든 조작 을 시도 할 수 있 습 니 다!새로 만 들 기,편집,보기,삭제,이로써 페이지 관리 부분 이 모두 완료 되 었 습 니 다!
큰 작업:현재 페이지 관리 부분 은 모두 완성 되 었 지만 Articles 관리 부분 은 아무것도 없습니다.페이지 의 코드 를 모방 하여 페이지 와 같은 관리 시스템 을 완성 하려 고 합 니 다.팁:컨트롤 러,보기,폼 검증 이 포함 되 어 있 습 니 다.Articles 관리 부분 을 완성 하면 Laravel 이 정말 입문 합 니 다!

좋은 웹페이지 즐겨찾기