You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
990 B

2 weeks ago
<?php
namespace App\Http\Controllers\Miniapp;
use App\Http\Controllers\Controller;
use App\Models\MiniappUser;
use App\Support\ApiResponse;
use App\Support\Miniapp\MiniappPresenter;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class ProfileController extends Controller
{
use ApiResponse;
public function update(Request $request): JsonResponse
{
/** @var MiniappUser $user */
$user = $request->user();
$data = $request->validate([
'nickname' => ['nullable', 'string', 'max:64'],
'avatar_url' => ['nullable', 'string', 'max:512'],
'name' => ['nullable', 'string', 'max:64'],
'mobile' => ['nullable', 'string', 'max:32'],
'company' => ['nullable', 'string', 'max:255'],
]);
$user->fill(array_filter($data, fn ($v) => $v !== null));
$user->save();
return $this->ok(MiniappPresenter::userPayload($user->fresh()), '资料已保存');
}
}