#4-public-user-profile

This commit is contained in:
2026-05-12 10:57:21 +08:00
parent 53be5221e9
commit b6c9557f83
42 changed files with 2994 additions and 242 deletions

View File

@@ -32,12 +32,14 @@ class RegisteredUserController extends Controller
{
$request->validate([
'name' => ['required', 'string', 'max:255'],
'username' => ['required', 'string', 'lowercase', 'min:3', 'max:32', 'regex:/^[a-z0-9_-]+$/', 'unique:'.User::class],
'email' => ['required', 'string', 'lowercase', 'email', 'max:255', 'unique:'.User::class],
'password' => ['required', 'confirmed', Rules\Password::defaults()],
]);
$user = User::create([
'name' => $request->name,
'username' => $request->username,
'email' => $request->email,
'password' => Hash::make($request->password),
]);

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\View\View;
class AuthorController extends Controller
{
/**
* Display the author's public profile.
*/
public function show(User $user): View
{
$user->load('roles:id,name');
return view('author.show', [
'author' => $user,
]);
}
}

View File

@@ -17,7 +17,7 @@ class UserController extends Controller
{
$users = User::query()
->orderBy('name')
->paginate(10, ['id', 'name', 'email', 'created_at']);
->paginate(10, ['id', 'name', 'username', 'email', 'created_at']);
return view('user.index', [
'users' => $users,

View File

@@ -25,6 +25,15 @@ class UpdateUserRequest extends FormRequest
{
return [
'name' => ['required', 'string', 'max:255'],
'username' => [
'required',
'string',
'lowercase',
'min:3',
'max:32',
'regex:/^[a-z0-9_-]+$/',
Rule::unique('users', 'username')->ignore($this->route('user')),
],
'email' => [
'required',
'string',