2013-05-24 2 views
0

아마도 멍청한 질문 일지 모르지만 여기에 간다.객체를 메서드 laravel PHP 번들에 전달

나는 사용자를 확인하기 위해 laravel 및 메시지 번들을 사용하여 전자 메일을 보냈습니다. 하지만 내 send 메서드 내에서 $ new_user 개체에 액세스하려면 어떻게해야합니까?

// Get inputdata and insert into table users 
    $new_user = User::create(array(
     'username' => Input::get('username'), 
     'email' => Input::get('email'), 
     'password' => Hash::make(Input::get('password')), 
     'hash' => hash('sha512', uniqid()) 
    )); 

    Message::send(function($message) 
    { 
     $message->to('[email protected]'); 
     $message->from($new_user->email, $new_user->username); 

     $message->subject('new account'); 
     $message->body(' 

      Bedankt voor het registreren! 

      Uw account is aangemaakt, u kan inloggen met de volgende gegevens nadat u u account heeft geactiveerd met de url hier beneden. 

      ------------------------ 
      Username: '.$new_user->username.' 
      Password: '.$new_user->password.' 
      ------------------------ 

      Klik op deze link om uw account te activeren. 

      http://blablabla.dev/verify?email='.$new_user->email.'&hash='.$new_user->hash.' 

     '); 
    }); 

개체에 액세스 할 수 없기 때문에 분명히 작동하지 않습니다.

나는이 권리를 표현했으면 좋겠다.

답변

1

당신은 여기 use 키워드

$new_user = User::create(array(
    'username' => Input::get('username'), 
    'email' => Input::get('email'), 
    'password' => Hash::make(Input::get('password')), 
    'hash' => hash('sha512', uniqid()) 
)); 

Message::send(function($message) use ($new_user) 
{ 
    $message->to('[email protected]'); 
    $message->from($new_user->email, $new_user->username); 
    // ... 
} 
을 사용할 수 있습니다
0

$ message instanceof Message? Message :: send()에 전달되어야하는 params는 무엇입니까? 당신이 당신의 메시지 클래스 (정적이지) Public 메서드 전송()를 가지고 있고, 그것은 다음과 같습니다 경우

$message = new Message; 
$message->to('[email protected]'); 
$message->from($new_user->email, $new_user->username); 
$message->subject('new account'); 
$message->body('...'.$new_user->email.'...'); 

:

public function send(){ 
    @mail($this->to, $this->subject, $this->body, $this->header, $this->params); 
} 

을 다음 할

당신이 더 나은이 작업을 수행 할 수 있음 그렇지
$message->send(); 

, 당신은 당신의 메시지 클래스의 정적 전송() 메소드를 가지고 있고, 그것은

로 정의 된 경우

Message::send($message); 

210

전화는 또한 당신이 데이터베이스에 추가하기 전에 사용자 입력의 유효성을 확인하는 것이 좋습니다.