{"flag":true,"single":true,"pageTitle":"Email alerts subscription laravel 10","post":{"id":32,"user_id":"1","slug":"email-alerts-subscription-laravel-10-sjzo","title":"Email alerts subscription laravel 10","body":"<p>This will cover<br>1. Get email from user<br>2. save them to database <br>3. Able to edit in admin panel<\/p>\r\n<p><strong>1. Create Table email_alerts_vehicles_data_table<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>DROP TABLE IF EXISTS `email_alerts`;\r\nCREATE TABLE `email_alerts` (\r\n  `id` int(11) NOT NULL AUTO_INCREMENT,\r\n  `user_id` bigint(20) unsigned DEFAULT NULL,\r\n  `email` varchar(255) DEFAULT NULL,\r\n  `alert_status` varchar(255) DEFAULT NULL COMMENT '1,0 for sending emails to only that are 1 ',\r\n  `alert_keyword` varchar(255) DEFAULT NULL,\r\n  `zip_city_state` varchar(255) DEFAULT NULL,\r\n  `alert_nature` varchar(255) DEFAULT NULL COMMENT 'daily, weekly, monthly',\r\n  `created_at` timestamp NULL DEFAULT NULL ON UPDATE current_timestamp(),\r\n  `updated_at` timestamp NULL DEFAULT NULL ON UPDATE current_timestamp(),\r\n  PRIMARY KEY (`id`),\r\n  KEY `user_id` (`user_id`)\r\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;<\/code><\/pre>\r\n<p><strong>2. Create A input form to show on front end&nbsp;<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>&lt;div class=\"email_subs mt-3\"&gt;\r\n    @if(session('success'))\r\n        &lt;div class=\"alert alert-success\"&gt; {{ session('success') }} &lt;\/div&gt;\r\n    @endif\r\n   &lt;form method=\"POST\" action=\"{{route('subscription_submit')}}\"&gt;            \r\n        @csrf\r\n        &lt;input type=\"email\" placeholder=\"Enter email\" name=\"email\"&gt;\r\n        &lt;button type=\"submit\"&gt;\r\n            Subscribe\r\n        &lt;\/button&gt;\r\n    &lt;\/form&gt;\r\n&lt;\/div&gt; &lt;!-- email_subs end --&gt;<\/code><\/pre>\r\n<p><strong>3. Create A route to show form that accept input values &nbsp;ie email<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>Route::post('subscription_submit',[App\\Http\\Controllers\\HomeController::class,'subscription_submit'])-&gt;name('subscription_submit');<\/code><\/pre>\r\n<p>4. Make model that is use to insert and retrive data from database , also add below two lines&nbsp;<br><strong>php artisan make:model Email_alerts&nbsp;<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>protected $guarded = [];\r\nprotected $table = 'email_alerts'; \/\/custom table name<\/code><\/pre>\r\n<p><strong>5. Add new method in controller to handle it<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>use App\\Models\\Email_alerts;\r\npublic function subscription_submit(Request $request){\r\n        $validated = $request-&gt;validate([\r\n           'email' =&gt; 'required',\r\n       ]);\r\n\r\n        \/\/ check if already email exists \r\n        $record = Email_alerts::where('email', $request-&gt;email)-&gt;first();\r\n        if(is_null($record)){\r\n            if(auth()-&gt;user()){\r\n                $emailis = auth()-&gt;user()-&gt;email;\r\n                $user_id = auth()-&gt;user()-&gt;id;\r\n            }else{\r\n                $emailis = $request-&gt;email;\r\n                $user_id=NULL;\r\n            }\r\n\r\n            $insert = Email_alerts::create([\r\n                'email' =&gt; $emailis,                \r\n                'user_id' =&gt; auth()-&gt;user()-&gt;id,\r\n                'alert_status' =&gt;1,\r\n                'alert_nature'=&gt;'daily'\r\n            ]);\r\n            return redirect()-&gt;back()\r\n                -&gt;with('success', 'Email Subscription Success.');\r\n        }\r\n        return redirect()-&gt;back();\r\n    }<\/code><\/pre>\r\n<p>Now data will be inserted to DB<\/p>\r\n<p><strong>6. Now if you want to update it add below code ie in admin panel<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>public function index(){\r\n    $user = User::with('has_email_alert')\r\n        -&gt;find(auth()-&gt;id());\r\n}\r\npublic function update_profile(Request $request){ \/\/used when user click on update\r\n        $update_user = \\App\\Models\\Email_alerts::where('user_id', auth()-&gt;id())\r\n        -&gt;where(\"id\", $request-&gt;has_email_alert_id)\r\n        -&gt;update(['alert_status' =&gt; $request-&gt;email_alert]);\r\n        return redirect()-&gt;route('profile');\r\n    }\r\n<\/code><\/pre>\r\n<p><strong>7.Admin panel view<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>@if(!empty($user-&gt;has_email_alert))\r\n    &lt;input type=\"hidden\" name=\"has_email_alert_id\" value=\"{{ $user-&gt;has_email_alert-&gt;id }}\"&gt;\r\n    &lt;input type=\"checkbox\" name=\"email_alert\" @if($user-&gt;has_vehcicle_alert-&gt;alert_status) checked=\"true\" @endif&gt;\r\n    &lt;button type=\"submit\"&gt;Update&lt;\/button&gt;\r\n@endif<\/code><\/pre>\r\n<p>note: add update_profile route and use this method update_profile<\/p>\r\n<p>&nbsp;<\/p>","category_id":"4","is_private":"0","created_at":"2023-03-20T11:58:33.000000Z","updated_at":"2023-03-20T11:58:33.000000Z","category":{"id":4,"user_id":"2","name":"Laravel","slug":"laravel-nmib","parent_id":"3","created_at":"2023-03-15T02:49:42.000000Z","updated_at":"2023-03-15T02:49:42.000000Z"},"user":{"id":1,"name":"R GONDAL","email":"rizikmw@gmail.com","email_verified_at":null,"two_factor_confirmed_at":null,"current_team_id":"1","profile_photo_path":null,"created_at":"2023-03-12T10:49:33.000000Z","updated_at":"2025-01-10T12:59:00.000000Z","profile_photo_url":"https:\/\/ui-avatars.com\/api\/?name=R+G&color=7F9CF5&background=EBF4FF"}},"pageDesc":"This will cover1. Get email from user2. save them to database 3. Able to edit in admin panel 1. Create Table email_alerts_vehicles_data_tabl - Email alerts subscription laravel 10 (Updated: March 20, 2023) - Read more about Email alerts subscription laravel 10 at my programming site [SITE]","categories":[]}