我正在测试如何从数据库中检索信息。
例如,在以下代码中,我可以显示一个值:
public function home(){
echo $user = User::find(1);
}
这很好,但是当我尝试将列值存储到变量中时:
$username = User::find(1)->username;
$name = User::find(1)->name;
echo $username; echo $name;
我收到错误: 未定义变量:名称
当我尝试测试电子邮件发送时,会出现错误,$ name似乎未定义。
Mail::send('emails.auth.test', array('name'=>$username),function($message){
$message->to('pathros@someemail.net',$name)->subject('Test 4');
});
但是,如果不是在$ message->中输入$ name而不是(),我输入任何值',它确实有效。 那么如何将值存储在变量中?
答案 0 :(得分:1)
由于范围可变,$name
电话无法使用function()
。 use
关键字(即function($message) use($name)
)可让您将其传递给函数:
Mail::send('emails.auth.test', array('name'=>$username),function($message) use($name){
$message->to('pathros@someemail.net',$name)->subject('Test 4');
});