Complete all tasks

This commit is contained in:
Thuan Bui
2025-04-21 13:06:16 +09:00
parent 8f62e93f7e
commit 80000ce664
10 changed files with 1545 additions and 1159 deletions
+4 -4
View File
@@ -9,14 +9,14 @@ class PostController extends Controller
{
public function store(Request $request)
{
$request->validate(
$request->validate([
'title' => 'required|unique:posts'
// ... TASK: write validation here so that "title" field
// would be required and unique in the "posts" DB table
);
]);
// Saving the post
Post::create(['title' => $request->title]);
return 'Success';
}
}
}}
@@ -9,6 +9,8 @@ class ProfileController extends Controller
public function update(Request $request)
{
$request->validate([
'profile.name' => 'required',
'profile.email' => 'required'
// TASK: imagine that in the Blade the fields are
// <input name="profile[name]" ... />
// <input name="profile[email]" ... />
+1 -1
View File
@@ -11,7 +11,7 @@ class UserController extends Controller
{
// TASK: change this line to not allow is_admin field to be updated
// Update only the fields that are validated in UpdateUserRequest
$user->update($request->all());
$user->update($request->except(['is_admin']));
return 'Success';
}
@@ -30,4 +30,13 @@ class StoreBuildingRequest extends FormRequest
'name' => 'required'
];
}
public function messages(): array
{
return [
'name.required' => 'Please enter the name'
];
}
}
+29
View File
@@ -0,0 +1,29 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreItemRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'name' => 'required',
'description' => 'required'
];
}
}
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Rules;
use Closure;
use Illuminate\Contracts\Validation\ValidationRule;
class Uppercase implements ValidationRule
{
/**
* Run the validation rule.
*
* @param \Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail
*/
public function validate(string $attribute, mixed $value, Closure $fail): void
{
//
if ((ucfirst($value)) !== $value)
{
$fail('The title does not start with an uppercased letter');
}
}
}
Generated
+1460 -1153
View File
File diff suppressed because it is too large Load Diff
@@ -9,6 +9,10 @@
{{-- @directive --}}
{{-- {{ $message }} --}}
{{-- @endDirective --}}
@error('name')
{{ $message }}
@enderror
<br /><br />
<button type="submit">Save</button>
</form>
+12
View File
@@ -4,6 +4,18 @@
{{-- in case of title/description empty, visitor should see --}}
{{-- "The name field is required." and "The description field is required." --}}
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error )
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form method="POST" action="{{ route('projects.store') }}">
@csrf
Title:
+1 -1
View File
@@ -3,7 +3,7 @@
Name:
<br />
{{-- TASK: change this field so it would contain old value after validation error --}}
<input type="text" name="name" />
<input type="text" name="name" value={{ old('name') }}/>
<br /><br />
<button type="submit">Save</button>
</form>