2017-03-03 51 views
2

我得到了用户表和电话号码行。我想发送短信,然后用户激活这样的:Laravel从db获取用户手机

 public function activate($token) 
    { 
     User::whereActivationToken($token)->firstOrFail()->confirmEmail(); 
     $phone = $this->user->phone; 

     flash()->success(trans('frontend.account.activated')); 

     if (Auth::check()) { 
      return redirect()->route('account.home'); 
     } else { 
      return redirect()->route('auth.login'); 
Sms::send("activated!", function($sms) { 
    $sms->to(['$phone']); # The numbers to send to. 
}); 
     } 
    } 
} 

但我发现了错误,试图让非对象的属性。怎么了?谢谢你们的答案,请不要生气,我是laravel的新手。

+0

是否显示你的错误行。如果是这样的话,你可以解决这个问题? – EddyTheDove

回答

1

你的错误可能是从该行

$phone = $this->user->phone; 

$用户在功能无处存在到来。也许你在别的地方定义了它。

$user = User::whereActivationToken($token)->firstOrFail(); 
$phone = $user->phone; 
1

更改您的代码是::

$user = User::whereActivationToken($token)->firstOrFail(); 
$user->confirmEmail(); 
$phone = $user->phone; 
+0

好吧,现在我没有得到任何erorrs,但我也没有收到任何短信。我认为$ phone并不代表任何东西 –

+0

@ромМакаров你总是可以使用'dd()'helper'dd($ user)'来查看User对象;'了解发生了什么。 –

+0

感谢您的帮助。问题在于:'sms :: send(“activated!”,function($ sms){sms-> to($ phone);#要发送给的号码 });'如果我离开([ '$手机'])我在页面上只是手机标签,如:$手机,但如果我删除并离开只是($手机)我收到错误“未定义的变量:手机”。似乎很奇怪 –