Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Test Laravel Validation
Browse files Browse the repository at this point in the history
echaouqui committed Oct 24, 2024
1 parent 8f62e93 commit 9f4858c
Showing 10 changed files with 94 additions and 2 deletions.
3 changes: 3 additions & 0 deletions app/Http/Controllers/PostController.php
Original file line number Diff line number Diff line change
@@ -12,6 +12,9 @@ public function store(Request $request)
$request->validate(
// ... TASK: write validation here so that "title" field
// would be required and unique in the "posts" DB table
[
'title' => 'required|unique:posts'
]
);

// Saving the post
1 change: 1 addition & 0 deletions app/Http/Controllers/ProfileController.php
Original file line number Diff line number Diff line change
@@ -13,6 +13,7 @@ public function update(Request $request)
// <input name="profile[name]" ... />
// <input name="profile[email]" ... />
// Write validation rules, so both name and email are required
'profile.name' => 'required',
]);

auth()->user()->update($request->profile ?? []);
2 changes: 1 addition & 1 deletion app/Http/Controllers/UserController.php
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@ public function update(User $user, UpdateUserRequest $request)
{
// 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';
}
7 changes: 7 additions & 0 deletions app/Http/Requests/StoreBuildingRequest.php
Original file line number Diff line number Diff line change
@@ -30,4 +30,11 @@ public function rules()
'name' => 'required'
];
}

public function messages()
{
return [
'name.required' => 'Please enter the name'
];
}
}
29 changes: 29 additions & 0 deletions app/Http/Requests/StoreItemRequest.php
Original file line number Diff line number Diff line change
@@ -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\Rule|array|string>
*/
public function rules(): array
{
return [
'name' => ['required'],
'description' => ['required'],
];
}
}
19 changes: 19 additions & 0 deletions app/Rules/StoreItemRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace App\Rules;

use Closure;
use Illuminate\Contracts\Validation\ValidationRule;

class StoreItemRequest implements ValidationRule
{
/**
* Run the validation rule.
*
* @param \Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail
*/
public function validate(string $attribute, mixed $value, Closure $fail): void
{
//
}
}
21 changes: 21 additions & 0 deletions app/Rules/Uppercase.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?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 (strtoupper($value[0]) !== $value[0]) {
$fail('The :attribute does not start with an uppercased letter');
}
}
}
3 changes: 3 additions & 0 deletions resources/views/products/create.blade.php
Original file line number Diff line number Diff line change
@@ -9,6 +9,9 @@
{{-- @directive --}}
{{-- {{ $message }} --}}
{{-- @endDirective --}}
@error('name')
<div>{{ $message }}</div>
@enderror
<br /><br />
<button type="submit">Save</button>
</form>
9 changes: 9 additions & 0 deletions resources/views/projects/create.blade.php
Original file line number Diff line number Diff line change
@@ -6,6 +6,15 @@

<form method="POST" action="{{ route('projects.store') }}">
@csrf
@if($errors->any())
<div>
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
Title:
<br />
<input type="text" name="title" />
2 changes: 1 addition & 1 deletion resources/views/teams/create.blade.php
Original file line number Diff line number Diff line change
@@ -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>

0 comments on commit 9f4858c

Please sign in to comment.