Laravel5.4でControllerでデータを更新した後、更新内容をとあるところにメールで通知するようなプログラムを検討しております。
仕組みとしては、APIでコールを投げると、情報の登録→該当の情報をDBから取得→Mailに渡す、というものです。
ControllerでEloquentモデルで取得した値をMailableに渡せない、というものなのですが、
その場合、どのようにしたらEloquentモデルで取得した情報をMailすることができるのでしょうか。
php
1public function storeAshiato(queryApiController $queryApiController,Request $request) 2 { 3 try{ 4 $ashiato = new ashiatoQuery; 5 $ashiato->post_id = $request->queryid; 6 $ashiato->memo = $request->memo; 7 $ashiato->user_id = $request->userid; 8 $ashiato->save(); 9 $houkoku = ashiatoQuery::find(1); 10 Mail::to('sample@example.com')->send(new queryNotify($houkoku)); 11 return response(200); 12 } catch (Exception $e){ 13 return $e; 14 } 15 }
php
1<?php 2 3namespace App\Mail; 4 5use Illuminate\Bus\Queueable; 6use Illuminate\Mail\Mailable; 7use Illuminate\Queue\SerializesModels; 8use Illuminate\Contracts\Queue\ShouldQueue; 9use App\ashiatoQuery; 10 11class queryNotify extends Mailable 12{ 13 use Queueable, SerializesModels; 14 15 /** 16 * 注文インスタンス 17 * @var houkoku 18 */ 19 protected $houkoku; 20 21 /** 22 * 新しいメッセージインスタンスの生成 23 * 24 * @return void 25 */ 26 27 28 public function __construct(Houkoku $houkoku) 29 { 30 $this->houkoku = $houkoku; 31 } 32 33 34 /** 35 * メッセージの生成 36 * 37 * @return $this 38 */ 39 public function build() 40 { 41 return $this->attach('http://www.ouyuu.biz/file/13/010.jpg') 42 ->view('mailformat.queryupdate'); 43 } 44} 45
エラーメッセージは、
Argument 1 passed to App\Mail\queryNotify::__construct() must be an instance of App\Mail\Houkoku, instance of App\ashiatoQuery given, called in /app/Http/Controllers/queryApiController.php on line 52 and defined in queryNotify.php (line 28)
at HandleExceptions
となっています。
よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。