Laravel 4 초급 튜 토리 얼 의 페이지,폼 검증
실행 명령:
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 이 정말 입문 합 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
단순 Laravel+Vue.js에서 VueUI를 사용하여 로그인 및 등록Laravel에는 웹 팩과 같은 Laravel-Mix가 있는데, 이를 이용해서 Laravel에 Vue.js를 실현할 수 있다. 이번에는 몇 가지 명령을 통해 간단하게 VueUI로 로그인하여 로그인을 할 수 있습니다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.