{"id":28337,"date":"2021-05-21T17:02:00","date_gmt":"2021-05-21T14:02:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28337"},"modified":"2021-10-17T04:45:07","modified_gmt":"2021-10-17T01:45:07","slug":"hur-du-anvander-laravel-evenemang-och-lyssnare-i-din-ansokan","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/sv\/hur-du-anvander-laravel-evenemang-och-lyssnare-i-din-ansokan\/","title":{"rendered":"Hur du anv\u00e4nder Laravel-evenemang och lyssnare i din ans\u00f6kan"},"content":{"rendered":"<p>Laravel kommer med flera coola funktioner i sin k\u00e4rna. N\u00e5gra av dem \u00e4r Broadcasting, File Storage, Notifications, Events, etc. Var och en av dessa inbyggda funktioner hj\u00e4lper utvecklare att f\u00f6renkla vanliga och komplicerade uppgifter.<\/p>\n<p>I den h\u00e4r artikeln diskuterar vi Laravel-h\u00e4ndelser som g\u00f6r det m\u00f6jligt f\u00f6r oss att registrera en lyssnare f\u00f6r specifika h\u00e4ndelser som f\u00f6rekommer i applikationen. Med andra ord kan jag s\u00e4ga anv\u00e4ndarregistrerad, best\u00e4llning placerad, produkt lagt till alla dessa \u00e4r h\u00e4ndelserna. Och om du beh\u00f6ver utl\u00f6sa n\u00e5gra \u00e5tg\u00e4rder efter dessa h\u00e4ndelser kan du registrera lyssnare. Laravel ringer automatiskt de lyssnare som \u00e4r registrerade f\u00f6r specifika h\u00e4ndelser.<\/p>\n<p>F\u00f6r v\u00e5r artikel kommer jag att implementera en h\u00e4ndelse f\u00f6r anv\u00e4ndarregistrering. N\u00e4r en anv\u00e4ndare har registrerat sig i applikationen ska systemet skicka ett v\u00e4lkomstmeddelande till dem. H\u00e4r \u00e4r anv\u00e4ndarregistrering h\u00e4ndelsen och att skicka ett v\u00e4lkomstmeddelande \u00e4r en lyssnare.<\/p>\n<p>Med detta sagt, l\u00e5t oss se hur man anv\u00e4nder h\u00e4ndelser och lyssnare i din Laravel-applikation.<\/p>\n<h3>Registrera evenemang och lyssnare i Laravel<\/h3>\n<p>Laravel tillhandah\u00e5ller <code>EventServiceProvider<\/code>fil d\u00e4r du beh\u00f6ver registrera dina evenemang och lyssnare. I v\u00e5rt fall m\u00e5ste vi l\u00e4gga till en h\u00e4ndelse och lyssnare f\u00f6r anv\u00e4ndarregistrering. S\u00e5 \u00f6ppna filen <code>EventServiceProvider.php<\/code>och l\u00e4gg till <code>UserRegistered<\/code>h\u00e4ndelse i den.<\/p>\n<p><strong>app \/ Providers \/ EventServiceProvider.php<\/strong><\/p>\n<pre><code>...\n...\nclass EventServiceProvider extends ServiceProvider\n{\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* The event listener mappings for the application.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @var array\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0protected $listen = [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'AppEventsUserRegistered' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'AppListenersSendWelcomeEmail',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0];<\/code><\/pre>\n<p>Anv\u00e4ndaren kan l\u00e4gga till s\u00e5 m\u00e5nga h\u00e4ndelser i denna matris beroende p\u00e5 krav. Generera sedan Laravel-h\u00e4ndelser genom att k\u00f6ra kommandot:<\/p>\n<pre><code>php artisan event:generate<\/code><\/pre>\n<p>Detta kommando skapar katalogerna &#8217;H\u00e4ndelser&#8217; och &#8217;Lyssnare&#8217; under mappen &#8217;app&#8217;. Inne i katalogen &#8217;app \/ h\u00e4ndelser&#8217; hittar du filen <code>UserRegistered.php<\/code>. P\u00e5 samma s\u00e4tt finns <code>SendWelcomeEmail.php<\/code>filen i katalogen &#8217;app \/ lyssnare&#8217;.<\/p>\n<h3>Definiera h\u00e4ndelser och lyssnare<\/h3>\n<p>Du \u00e4r nu redo med pannplattan f\u00f6r ditt anv\u00e4ndarregistrerade evenemang. V\u00e5rt m\u00e5l \u00e4r att skicka ett v\u00e4lkomstmeddelande till anv\u00e4ndaren efter att de registrerat sig. F\u00f6r att skicka ett mejl beh\u00f6ver vi ett anv\u00e4ndarobjekt som inneh\u00e5ller anv\u00e4ndarens information. I <code>UserRegistered<\/code>h\u00e4ndelse passerade jag ett anv\u00e4ndarobjekt till sin konstrukt\u00f6r. Detta objekt \u00f6verf\u00f6rs sedan till lyssnaren.<\/p>\n<p><strong>app \/ H\u00e4ndelser \/ UserRegistered.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppEvents;\n\u00a0\n....\nuse AppUser;\n\u00a0\nclass UserRegistered\n{\n\u00a0\u00a0\u00a0\u00a0use Dispatchable, InteractsWithSockets, SerializesModels;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0public $user;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Create a new event instance.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return void\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function __construct(User $user)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;user = $user;\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Koden som skickar ett e-postmeddelande till en anv\u00e4ndare g\u00e5r in i lyssnarfilen. \u00d6ppna lyssnaren <code>SendWelcomeEmail<\/code>och skriv koden enligt f\u00f6ljande.<\/p>\n<p><strong>app \/ lyssnare \/ SendWelcomeEmail.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppListeners;\n\u00a0\n....\nuse Mail;\n\u00a0\nclass SendWelcomeEmail\n{\n\u00a0\u00a0\u00a0\u00a0....\n\u00a0\u00a0\u00a0\u00a0....\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Handle the event.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 UserRegistered\u00a0 $event\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return void\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function handle(UserRegistered $event)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$data = array('name' =&gt; $event-&gt;user-&gt;name, 'email' =&gt; $event-&gt;user-&gt;email, 'body' =&gt; 'Welcome to our website. Hope you will enjoy our articles');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Mail::send('emails.mail', $data, function($message) use ($data) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$message-&gt;to($data['email'])\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-&gt;subject('Welcome to our Website');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$message-&gt;from('noreply@artisansweb.net');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>I ovanst\u00e5ende fil skrev jag koden f\u00f6r att skicka e-post i <code>handle<\/code>metoden f\u00f6r lyssnarklassen. Detta beror p\u00e5 att <code>handle<\/code>metoden f\u00e5r ett samtal efter en anv\u00e4ndarregistreringsh\u00e4ndelse.<\/p>\n<p>Jag anv\u00e4nde ocks\u00e5 den f\u00f6rsta parametern som &#8217;emails.mail&#8217; i Mail-metoden. Det betyder att du ska skapa en <code>resources\/views\/emails\/mail.blade.php<\/code>fil.<\/p>\n<p><strong>mail.blade.php<\/strong><\/p>\n<pre><code>Hi &lt;strong&gt;{{ $name }}&lt;\/strong&gt;,\n\u00a0\n&lt;p&gt;{{ $body }}&lt;\/p&gt;<\/code><\/pre>\n<h3>Slutligen ring evenemanget<\/h3>\n<p>I det h\u00e4r skedet \u00e4r du klar med ditt evenemang och din lyssnare. Det sista steget kvarst\u00e5r \u00e4r att ringa evenemanget fr\u00e5n r\u00e4tt plats. L\u00e5t oss s\u00e4ga att du anv\u00e4nder &#8217;UserController&#8217; f\u00f6r att registrera en anv\u00e4ndare. S\u00e5 fr\u00e5n <code>UserController<\/code>, kan du ringa till evenemanget enligt f\u00f6ljande.<\/p>\n<p><strong>app \/ Http \/ Controllers \/ UserController.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\n....\nuse AppEventsUserRegistered;\nuse AppUser;\n\u00a0\nclass UserController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0.....\n\u00a0\u00a0\u00a0\u00a0.....\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Store a newly created resource in storage.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 IlluminateHttpRequest\u00a0 $request\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function store(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$user = User::create([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name' =&gt; $request-&gt;input('name'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'email' =&gt; $request-&gt;input('email'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'password' =&gt; bcrypt($request-&gt;input('password')),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ call our event here\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0event(new UserRegistered($user));\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $user;\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Nu n\u00e4r en anv\u00e4ndare registrerar, ger ovanst\u00e5ende kod ett samtal till &quot;UserRegistered&quot; -h\u00e4ndelsen som s\u00e5 sm\u00e5ningom ringer upp lyssnaren. Lyssnaren skickar sedan ett v\u00e4lkomstmeddelande till anv\u00e4ndaren.<\/p>\n<p>Jag hoppas att du f\u00f6rst\u00e5r hur du anv\u00e4nder h\u00e4ndelser och lyssnare i din Laravel-applikation. Dela dina tankar och f\u00f6rslag i kommentarsektionen nedan.<\/p>\n<h4>relaterade artiklar<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/hur-man-anvander-laravel-passport-for-rest-api-autentisering\/\" title=\"Hur man anv\u00e4nder Laravel Passport f\u00f6r REST API-autentisering\" >Hur man anv\u00e4nder Laravel Passport f\u00f6r REST API-autentisering<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/skicka-e-post-via-gmail-smtp-server-i-laravel\/\" title=\"Skicka e-post via Gmail SMTP-server i Laravel\" >Skicka e-post via Gmail SMTP-server i Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/anvandarregistrering-och-inloggningssystem-i-laravel\/\" title=\"Anv\u00e4ndarregistrering och inloggningssystem i Laravel\" >Anv\u00e4ndarregistrering och inloggningssystem i Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vill du implementera Laravel-evenemang och lyssnare? I den h\u00e4r artikeln diskuterar vi hur du registrerar, definierar och anv\u00e4nder Laravel-evenemang och lyssnare.<\/p>\n","protected":false},"author":1,"featured_media":22025,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[503],"tags":[850],"class_list":["post-28337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-10","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/28337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/comments?post=28337"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/28337\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media\/22025"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media?parent=28337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/categories?post=28337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/tags?post=28337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}