可能是一个菜鸟问题,但我们走了。
我正在使用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('blablabla@hotmail.com');
$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.'
');
});
这样做显然不起作用,因为我无法访问该对象。
希望我说得对。
答案 0 :(得分: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('blablabla@hotmail.com');
$message->from($new_user->email, $new_user->username);
// ...
}
答案 1 :(得分:0)
$ message instanceof Message?应该将哪些参数传递给Message :: send()? 也许你最好这样做:
$message = new Message;
$message->to('blablabla@hotmail.com');
$message->from($new_user->email, $new_user->username);
$message->subject('new account');
$message->body('...'.$new_user->email.'...');
如果你的Message类中有public(非静态)方法send(),它看起来像这样:
public function send(){
@mail($this->to, $this->subject, $this->body, $this->header, $this->params);
}
然后做
$message->send();
否则,如果您的Message类中只有静态send()方法,并且它定义为
static function send(Message $message){...}
呼叫
Message::send($message);
另外,我建议您在将用户输入添加到数据库之前对其进行验证。