2016-04-12 16 views
1

laravel Mailを使用してメールでいくつかのユーザーの詳細を送信したいと思います。 メールを送信ボタンをクリックしている間、次のエラーが表示されます。 f007458b7fd9880a4f1d9bd9b684d2f236a70b32.phpライン8でLaravel 5.2-電子メールビューにデータを渡す

ErrorException:(: C:\ xamppの\ htdocsに\ laravel-役割\リソース\ビュー\ mail.blade.phpビュー)

は非オブジェクトのプロパティを取得しようとすると、ルートここ

public function sendEmail($id) 
    { 
     $user = User::findOrFail($id); 

     Mail::send('mail', ['user' => $user], function ($m) use ($user) { 
       $m->from('[email protected]', 'xxx'); 

      $m->to($user->email, $user->name)->subject('Thanks!'); 
     }); 
    } 

されています:

Route::get('/sendMail/{id}',[ 
     'uses' =>'[email protected]', 
     'as' =>'sendMail', 
     'middleware'=>'roles', 
     'roles'=>['Admin'] 
     ]); 
ここ

はコントローラであり、ここで

mail.blade.phpファイルされる:

<html> 
    <head></head> 
    <body> 
     Dear, 
      Thanks for registering for the course. 
      Login Details: 
      @foreach($user as $row) 
      UserName: {{$row->email}} 
      Password: {{$row->phone}} 
      @endforeach 
    </body> 
</html> 

ここでは、ビューページでのメール送信者ボタンです:アクセスしようとしている

@foreach($user as $row) 
<a href="{{route('sendMail',$row->id)}}" class="btn btn-warning">Complete</a> 
    @endforeach 

答えて

0

ルートが存在しません。あなたのメール機能とはまったく関係がありません。

ルートファイルを確認するか、ここに投稿し、アクセスしているルートをお知らせください。お使いのコントローラで

+0

あなたのブラウザのURLは – Matt

+0

で、コードはミドルウェアと一致していますか? 'middleware' => 'roles'、 'roles' => ['Admin'] – Matt

+0

http:// localhost:8080/laravel-roles/sendMail/21 – Hola

0

は、あなたが使用:

シングルユーザーオブジェクトを返す必要があります
$user = User::findOrFail($id); 

を!

これは、あなたの見解では、そのユーザーに対してforeachを使用することはできません。そのユーザーデータにアクセスするには、あなただけが書くことができます。

Login Details: 
UserName: {{$user->email}} 
Password: {{$user->phone}} 

これはうまくいくはずです。