2014-07-23 1 views
1

내 사용자 지정 함수 용 사용자 정의 클래스 파일이 있습니다. 내가 시도를하려는 내 사용자 정의 클래스 파일 내부에 Laravel의 Validator의 기능을 사용할 필요가Laravel4의 Laravel에 내장 된 함수를 사용하여 사용자 정의 클래스 파일 필요

,

네임 스페이스 등 사용, 확장, 예상대로 작동하지 않습니다.

나는 자신 만의 맞춤 클래스/도우미 파일을 사용하는 방법을 잘 모르겠다. 안내를 따라주세요.

class SessionsController extends \BaseController { 

    function __construct() 
    { 
     //Include my class file @ app/_extra/custom_validator.php 
     require_once app_path('_extra/custom_validator.php'); 

    } 

} 

그리고 여기 당신이 프로젝트의 이름을 따서 명명 앱 디렉토리에 별도의 폴더를 가질 수 있습니다, 내 유효성 검사기 클래스 파일 사용자 정의 클래스에 대한

class custom_validator extends Illuminate\Validation\Validator 
{ 

    public function validate($input,$rules){ 
     $validation = Validator::make($input,$rules); 
     if($validation->passes())return true; 
     return $validation->messages(); 
    } 
} 

답변

2

입니다. 그 폴더 안에는 사용자 정의 검사기를 가질 수 있습니다.

app/Project/Validators 폴더가 있고이 폴더 내에 custom_validator 클래스가 있다고합시다. 당신은, 당신은 자신의 이름 공간으로부터 도달 할 수 클래스를 사용하려는 경우이 디렉토리 자동로드

"autoload": { 
    "classmap": [ 
     "app/commands", 
     "app/controllers", 
     "app/models", 
     "app/database/migrations", 
     "app/database/seeds", 
     "app/tests/TestCase.php" 
    ], 
    "psr-4": { 
     "Project\\": "app/Project" 
    } 
} 

를 그런 다음 composer.json로 이동이

<?php namespace Project\Validators; 

class CustomValidator extends Illuminate\Validation\Validator 
{ 

    public function validate($input,$rules){ 
     $validation = Validator::make($input,$rules); 
     if($validation->passes())return true; 
     return $validation->messages(); 
    } 
} 

처럼 클래스와 네임 스페이스를 정의하고 있습니다 :

먼저 주소 컨트롤러에서 네임 스페이스 :

use Project\Validators\CustomValidator; 

후 Y 다음과 같이 클래스를 인스턴스화 할 수 있습니다.

$validator = new CustomValidator(); 

실제로 파일 시스템에서 파일을 요구하는 것보다 나은 방법입니다. 그리고 당신은 당신의 composer.json를 업데이트 할 때

composer dump-autoload 

할 것을 잊지 마세요.

희망이 도움이됩니다.

0

composer.json에서 파일을 autoload 객체의 클래스 맵 객체에 추가 할 수 있습니다. 당신은 당신이 자동로드 할 파일의 전체 디렉토리가있는 경우 또는, 당신이 그렇게처럼 PSR-0 또는 PSR-4 자동로드 객체에 추가 할 수 있습니다 사용

... 
"autoload": { 
    ... 
    "psr-0": { 
    "Acme": "app/Acme" 
    } 
... 

이 앱 내에서 모든 클래스를로드/한국 전기 귀하의 신청서에

관련 문제