我正在制作一个jwt
用作身份验证系统的应用程序,
当我尝试更新我的Category
模型时,策略总是返回 403 未授权,
我正在使用apiResource
我crud
的模型。
我的代码
在api.php
:
Route::apiResource('category', CategoryController::class);
在CategoryController.php
:
public function update(Request $request, $id)
{
// print_r($request->all());
$validator = Validator::make(
$request->all(),
[
'name' => 'required|min:2|unique:categories,name,' . $request->id,
'description' => 'required|min:1',
],
[
"name.unique" => "اسم الصنف مستخدم مسبقا",
"name.required" => "اسم الصنف مطلوب",
"name.min" => "اسم الصنف يجب أن يحتوي على حرفين على الأقل",
"description.required" => "وصف الصنف مطلوب",
]
);
if ($validator->fails()) {
return response()->json(['errors' => $validator->messages(), 'status' => 422], 200);
}
$category = Category::find($id);
$category->name = $request->name;
$category->description = $request->description;
$category->save();
return response()->json([
"message" => "تم تحديث الصنف",
"status" => 200
], 200);
}
在CategoryPolicy.php
:
public function update(User $user, Category $category)
{
return $category->user_id === $user->id;
}
似乎request
甚至没有达到update
方法,CategoryPolicy.php
因为即使方法总是返回 true 它也不起作用:
public function update(User $user, Category $category)
{
return true;
}
该方法以任何方式viewAny
按预期工作。
我正在使用 axios 来获取和更新数据,并且我正在发送请求,
bearer token
除了上面的问题之外,一切都正常。