axkuhta пре 1 година
родитељ
комит
e5089d1c1e

+ 23 - 0
app/Http/Controllers/form_controller.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+
+class form_controller extends Controller {
+	public function index() {
+		return view("form"); // Блейд
+	}
+
+	public function store(Request $request) {
+		$request->validate([
+			"email" => "required|email:rfc,dns" // Будет большая задержка
+		], [
+			// Второй опциональный массив с детальными сообщениями об ошибках
+			"email.required" => "Нужен email",
+			"email.email" => "Что-то не похоже на мыло!"
+		]);
+
+		return view("success");
+	}
+}

+ 26 - 0
resources/views/form.blade.php

@@ -0,0 +1,26 @@
+@extends("layouts.app")
+
+@section("content")
+<form method="POST" action="">
+	@csrf
+
+	<div>
+		<label>
+			<div>Email:</div>
+			<input type="email" name="email" placeholder="Email..." value="{{ old("email") }}">
+			@error("name")
+				<div class="alert">{{ $message }}</div>
+			@enderror
+		</label>
+	</div>
+
+	<div>
+		<label>
+			<div>Message:</div>
+			<textarea name="message" placeholder="Message...">{{ old("message") }}</textarea>
+		</label>
+	</div>
+
+	<input type="submit">
+</form>
+@endsection

+ 18 - 0
resources/views/layouts/app.blade.php

@@ -60,6 +60,24 @@
 					float: none;
 				}
 			}
+
+			label {
+				border-left: 2px solid #D0D0D0;
+				display: block;
+				padding-left: 0.3rem;
+				margin: .3rem 0;
+			}
+
+			label:focus-within {
+				border-color: #00FF60;
+			}
+
+			input, textarea {
+				font-size: inherit;
+				border: 1px solid #D0D0D0;
+				background-color: inherit;
+				color: inherit;
+			}
 		</style>
 	</head>
 	<body>

+ 6 - 0
resources/views/success.blade.php

@@ -0,0 +1,6 @@
+@extends("layouts.app")
+
+@section("content")
+<h1>Успешно</h1>
+<p>Данные сохранены.</p>
+@endsection

+ 5 - 0
routes/web.php

@@ -14,3 +14,8 @@ use Illuminate\Support\Facades\Route;
 */
 
 Route::view('/', 'index');
+
+use App\Http\Controllers;
+
+Route::get('/form', [Controllers\form_controller::class, 'index']);
+Route::post('/form', [Controllers\form_controller::class, 'store']);