2016-10-05 6 views
1

난 내 레지스터 컨트롤러에서 컨트롤러에서 특성을 사용하려고하지만Laravel 5.3 형질을 찾을 수 없습니다

오류 메시지 찾을 수 없습니다 안녕하세요 :

Trait 'MailVerification' not found 

클래스있는 여기

namespace App\Http\Controllers\Auth; 

use App\User; 
use Validator; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\RegistersUsers; 

class RegisterController extends Controller 
{ 
    use RegistersUsers; 
    use MailVerification; 

내가 기능

protected function create(array $data) 
{ 
    $mail = $data['email']; 

    $this->sendVerification($mail); 
,369에게 호출 특성을 사용하려면 여기

은 클래스의 특성이 내가이 맞다면 내가 모르는 내 클래스의 외부 특성이

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\Mail\TestMail; 
use Illuminate\Support\Facades\Mail; 
use App\Http\Controllers\Controller; 
use Session; 

trait MailVerification 
{ 
    public function sendVerification($mail) 
    { 
     $verification_code = str_random(30); 
     Mail::send('mail.verify', ['verification_code' => $verification_code, 'mail' => $mail], function ($message) use ($mail) 
     { 
      $message->from('[email protected]'); 
      $message->to($mail); 
     }); 
     Session::flash('message', "Please check you're email to verify your account"); 

     return redirect('/'); 
    } 
} 

class MailController extends Controller 
{ 

에서 가져하려고하지만 그것은 동안 나에게 오류를주고 있었다이다 수업 안에 있었다.

+0

과 같아야 등록하는 방법이 무엇입니까? – prateekkathal

+0

그래서 나는 다른 클래스의 특성을 가져서는 안된다. 별도의 파일에 보관해야합니까? 지금 해 보았지만 이것이 맞는지 모르겠다. @prateekkathal –

+0

예! 형질은 항상 분리되어 져야합니다! 내 답변에서 제안한대로, 당신은'App \ Traits' 폴더로 자신의 특성을 이동하고 별도의 컨트롤러를 유지해야합니다! .... – prateekkathal

답변

1

컨트롤러의 네임 스페이스 RegisterController 및 MailVerification이 다른 ...

그래서 당신의 특성은, 당신은 또한 당신의 RegisterController

use App\Http\Controllers\MailVerification; 

이 줄을 추가해야합니다 , 컨트롤러 대신에 App\Traits 폴더 안에 모든 특성을 넣으십시오. : 가능하면 간단한 방법 다음 시도

편집 -

당신이 컨트롤러가 MailController이 특징 내부 일을 무엇

namespace App\Http\Controllers\Auth; 

use App\User; 
use Validator; 
use App\Http\Controllers\Controller; 
use App\Http\Controllers\MailVerification; 
use Illuminate\Foundation\Auth\RegistersUsers; 

class RegisterController extends Controller 
{ 
    use RegistersUsers, MailVerification; 

    //Your code here.... 
} 
+0

만약 내가이 오류가 발생합니다. 'App \ Http \ Controllers \ Auth \ App \ Http \ Controllers \ MailVerification'특성을 찾을 수 없습니다. –

+0

그리고 사용하는 경우 \ App \ Http \ Controllers \ MailVerification; 'App \ Http \ Controllers \ MailVerification'특성을 찾을 수 없습니다. –

+0

(질문에 대한) 내 의견에 답할 수 있습니까? 트리보기에서 폴더 및 파일 구조에 대한 스크린 샷을 만들 수 있습니까? 또한, 그것을 시도하기 위해, 당신은 Auth와 App \ Http \ Controllers 폴더에 RegisterController를 넣을 수 있습니까? – prateekkathal