2015-04-08 53 views
1

我已經寫在我的註冊功能的郵件代碼的性質,我收到此錯誤Laravel 5試圖讓非對象電子郵件

ErrorException在7c8c0426cb92aba181a5916d6b3e33a6線2: 試圖獲得的非財產對象(查看:/Users/aliayaz/Adcells-master/resources/views/emails/register-activate.blade.php)

 Mail::queueOn('Email-Activation', 'emails.register-activate', $data, function ($m) use ($user) { 
      $m->to($user->email, $user->first_name . ' ' . $user->last_name); 
      $m->subject('Welcome ' . $user->first_name); 
     }); 

和我有註冊激活下資源/視圖/電子郵件

文件
@extends('emails/layouts/default') 

@section('content') 
<p>Hello {{{ $user->first_name }}},</p> 

<p>Welcome to SiteNameHere! Please click on the following link to confirm your  SiteNameHere account:</p> 

<p><a href="{{{ $activationUrl }}}">{{{ $activationUrl }}}</a></p> 

<p>Best regards,</p> 

<p>@lang('general.site_name') Team</p> 
@stop 

此代碼下laravel 4.2完美的工作,我想升級到5.0

編輯1: 我沒有文件名爲 7c8c0426cb92aba181a5916d6b3e33a6

回答

0

嘗試合併爲&主題在一個聲明中的邏輯。

$m->to($user->email, $user->first_name . ' ' . $user->last_name)->subject('Welcome ' . $user->first_name); 

您也可以將代碼粘貼在該文件中「7c8c0426cb92aba181a5916d6b3e33a6」,進一步瞭解導致這個問題。

0

確保$ data ['user']存在並且也是一個對象。可能發生了這種情況。它試圖從$用戶獲取信息並且它不存在。

+0

我檢查數組包含正確的數據..而且是把數據導入數據庫正常..但不郵寄 –

0
Mail::send('emails.register-activate', $data, function($message) { 
    $message->to(Input::get('email'), Input::get('username')) 
    ->subject('Verify your email address'); 
    }); 

如果說輸入沒有找到下面的代碼的認沽在你的頁面

use Illuminate\Support\Facades\Input; 
2

的頂部這是專門與Mail::queue,它的所有的子方法的問題。當通過隊列系統處理數據時,它會被序列化,然後在它到達電子郵件視圖時被解除序列化。

但是,如果您要將上面的代碼段更改爲Mail::send,您會發現它可行。

處理此問題的一種方法是制定一個網站範圍的決定,即只將數組傳遞到視圖中。

+0

是的,這是有幫助的我的錯誤已經改變,但現在沒有解決... 現在我可以發送電子郵件..但它沒有收到......沒有錯誤.. –

+0

我會提出,作爲單獨的問題,因爲它與這一部分無關。 – Chris

0

您必須在視圖內部傳遞數據數組。 您沒有在視圖內傳遞$ user數據。您必須在視圖內傳遞$ user變量。那麼只有你可以訪問的價值$用戶

$data = array('user' => $user); 

    Mail::queueOn('Email-Activation', 'emails.register-activate', $data, function ($m) use ($user) { 
     $m->to($user->email, $user->first_name . ' ' . $user->last_name); 
     $m->subject('Welcome ' . $user->first_name); 
    }); 

然後打印您的看法如下

<p>Hello {{{ $user['first_name'] }}},</p>