[英]Laravel 5.1 Eloquent Events
我正在使用Laravel Model Events。 我的要求是將其他參數傳遞給事件。
我這樣想:
$feedback = new Feedback();
$feedback->user_id = $this->user_id;
$feedback->feedback = $request->feedback;
$data = array(
'message' => $request->feedback,
'from' => $this->data->user->email,
'name' => $this->data->user->displayname
);
$feedback->save($data);
我的活動是:
public function boot()
{
Feedback::saved(function ($item) {
//\Event::fire(new SendEmail($item));
});
}
但它只在我嘗試發送時發送Model對象:
$data = array(
'message' => $request->feedback,
'from' => $this->data->user->email,
'name' => $this->data->user->displayname
);
我如何將此發送給活動?
肯定有解決這個問題的方法。 首先想到的是在您的活動所在的Provider
內部獲取Auth
數據。
你需要做這樣的事情:
use Auth; //Assuming this is how you are handling authentication
public function boot()
{
Feedback::saved(function ($item) {
$user = Auth::user();
$data = [
'message' => $item->feedback,
'from' => $user->email,
'name' => $user->displayname
];
\Event::fire(new SendEmail($data));
});
}
您可以改為使用$item->user->email
,而不用擔心Auth,我只是無法知道您到目前為止發布的內容之間的關系。
代碼可能需要稍微調整才能在您的應用程序中工作,讓我知道是否還有其他問題!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.