使用save保存,并判断是否保存成功的代码
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Log;
class UserController extends Controller
{
public function store(Request $request)
{
// 数据验证
$validated = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:8',
]);
try {
// 实例化模型
$user = new User();
// 给模型属性赋值
$user->name = $validated['name'];
$user->email = $validated['email'];
$user->password = Hash::make($validated['password']);
// 保存数据并判断是否成功
if ($user->save()) {
// 保存成功
Log::info('用户创建成功', ['user_id' => $user->id, 'email' => $user->email]);
return redirect()->route('users.index')
->with('success', '用户创建成功,ID:' . $user->id);
} else {
// 保存失败
Log::error('用户创建失败', ['data' => $validated]);
return back()
->withInput()
->with('error', '用户创建失败,请稍后重试');
}
} catch (\Exception $e) {
// 捕获异常(如数据库错误等)
Log::error('用户创建过程中发生错误', [
'error' => $e->getMessage(),
'data' => $validated
]);
return back()
->withInput()
->with('error', '系统错误:' . $e->getMessage());
}
}
}
使用接口返回的方法
namespace App\Http\Controllers\Api;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Log;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
/**
* 保存用户数据并返回API响应
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function store(Request $request)
{
try {
// 数据验证(验证失败会自动返回422状态码的JSON响应)
$validated = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:8',
]);
// 实例化模型并赋值
$user = new User();
$user->name = $validated['name'];
$user->email = $validated['email'];
$user->password = Hash::make($validated['password']);
// 保存数据并判断结果
if ($user->save()) {
// 保存成功:返回201状态码(资源创建成功)
return response()->json([
'status' => true,
'message' => '用户创建成功',
'data' => [
'user_id' => $user->id,
'name' => $user->name,
'email' => $user->email,
'created_at' => $user->created_at
]
], 201); // 201 Created
} else {
// 保存失败:返回400状态码(请求错误)
Log::warning('用户保存失败', ['data' => $validated]);
return response()->json([
'status' => false,
'message' => '用户创建失败,请检查数据',
'data' => null
], 400); // 400 Bad Request
}
} catch (\Exception $e) {
// 捕获异常:返回500状态码(服务器错误)
Log::error('用户创建接口异常', [
'message' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
'data' => $request->all()
]);
return response()->json([
'status' => false,
'message' => '服务器内部错误',
'error' => env('APP_DEBUG', false) ? $e->getMessage() : null // 调试模式显示错误详情
], 500); // 500 Internal Server Error
}
}
}
最近访问时间:2025-10-14 15:42:00