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