3
我對Laravel的事件處理程序和監聽器有疑問。我不知道從哪裏開始。Laravel事件處理程序和監聽器
我想知道什麼是事件以及何時使用它們。另外我想知道組織事件和聽衆的最佳方式是什麼,以及將它們放在哪裏(在哪個文件夾中)。
任何幫助,將不勝感激;)
我對Laravel的事件處理程序和監聽器有疑問。我不知道從哪裏開始。Laravel事件處理程序和監聽器
我想知道什麼是事件以及何時使用它們。另外我想知道組織事件和聽衆的最佳方式是什麼,以及將它們放在哪裏(在哪個文件夾中)。
任何幫助,將不勝感激;)
我最近實施的行動,例如飼料當一個帖子被創建時,一個新用戶被註冊,或者其他任何東西。每一個動作都會觸發一個事件,並且每個事件都有一個監聽器,這節省了像「用戶XY剛剛註冊!」這樣的東西。在數據庫中。
非常基本的版本:
// app/controllers/RegistrationController.php
class RegistrationController {
public function register($name) {
User::create([
'name' => $name
});
Event::fire('user.registered', [$name]);
}
}
// app/events.php
Event::listen('user.registered', function($name) {
DB::table('feed')->insert(
[
'action' => 'User ' . $name . ' just registered!'
// ...
}
);
});
要使用events.php文件,下面一行添加到您的app/start/global.php
require app_path().'/events.php';
現在你可以把所有事件在events.php。
但如果你將有很多的事件,你不應該把所有的事件在一個文件中。見Event Subscribers。
謝謝!正是我需要:)這使測試我的控制器更容易。 –
嗨@Melvin Koopmans,我想在用戶登錄時觸發一個事件。我使用內置身份驗證的laravel 5。我應該在哪裏開展活動? –
您可以在控制器中觸發事件。當你點擊特定的控制器方法時,你可以定義你的事件觸發。然後,laravel會自動爲你開啓你的活動。 – vijayrana