Maison  >  Questions et réponses  >  le corps du texte

Lorsque j'essaie de mettre à jour mon message de manière fanfaronne, j'obtiens l'erreur suivante

C'est ma manette et je me pavane ici pour changer

class ProductController extends Controller

public function __construct()
{
    $this->middleware('auth:api');
}


public function getdata()
{
    $products = Product::get();
    return view('table', [
        'products'=>$products
    ]);
}

Ici, je récupère toutes les données de la base de données

/**
 * @return array<object string/int>
 *
 *
 * @OA\Get(
 *      path="/api/products",
 *      tags={"Products"},
 *      summary="Get all products",
 *      description="For getting all datas should be pressed the button called 'try'",
 *      operationId="index",
 *      @OA\Parameter(
 *         name="paginate",
 *         in="query",
 *         description="Status values that needed to be considered for filter",
 *         required=true,
 *         explode=true,
 *         @OA\Schema(
 *             default="10",
 *             type="string",
 *         )
 *     ),
 *      @OA\Response(
 *         response=200,
 *         description="successful operation",
 *      ),
 *     security={{ "bearer": {} }}
 * )
 */


public function index($paginate=10){
    return UserResource::collection(Product::paginate($paginate));
}

Ici, je stocke les données de swagger

/**
 * @OA\Post(
 *      path="/api/products",
 *      tags={"Products"},
 *      summary="Create a new type of item to the product",
 *      operationId="store",
 *      @OA\RequestBody(
 *          description="Create a new item",
 *          required=true,
 *          @OA\MediaType(
 *              mediaType="multipart/form-data",
 *              @OA\Schema(
 *                  type="object",
 *                  @OA\Property(
 *                     property="name",
 *                     description="Give a new name to the product",
 *                     type="string",
 *                 ),
 *                  @OA\Property(
 *                     property="type",
 *                     description="Give a new type to the product",
 *                     type="string",
 *                 ),
 *                  @OA\Property(
 *                     property="price",
 *                     description="Give a new type to the product",
 *                     type="string",
 *                 ),
 *                  @OA\Property(
 *                     property="image",
 *                     description="Give a new type to the product",
 *                     type="file",
 *                 ),
 *              ),
 *          ),
 *      ),
 *      @OA\Response(
 *         response=200,
 *         description="successful operation",
 *     ),
 *     security={{ "bearer": {} }}
 * )
*/

public function store(ProductRequest $request)
{
    $request->validated();
    if ($request->hasFile('image')) {
        $path = $request->file('image')->store('images', 'public');
        $product = new Product;
        $product->image = $path;
        $product->name = $request->name;
        $product->type = $request->type;
        $product->price = $request->price;
        $product->save();
    }
    return response()->json([
        'status' => 'success',
        'message' => 'Product created successfully',
        'products' => $product,

    ]);

}

Ici, je reçois juste l'identifiant de l'élément sélectionné pour l'affichage

/**
 * @OA\Get(
 *      path="/api/product/{id}",
 *      tags={"Products"},
 *      summary="Show the choosen element",
 *      operationId="show",
 *      @OA\Parameter(
 *         name="id",
 *         in="path",
 *         description="Status values that needed to be considered for filter",
 *         required=true,
 *         explode=true,
 *         @OA\Schema(
 *             default="1",
 *             type="string",
 *         )
 *     ),
 *      @OA\Response(
 *         response=200,
 *         description="successful operation",
 *      ),
 *      security={{ "bearer": {} }}
 * )
 *
 */

public function show($id)
{
    return UserResource::collection(Product::all()->keyBy->id);
}

Lorsque j'essaie de modifier les données existantes dans la base de données, j'obtiens toujours l'erreur ci-dessous.

/**
 * @OA\Put(
 *      path="/api/product/{id}/update",
 *      tags={"Products"},
 *      summary="Update the choosen element",
 *      operationId="update",
 *      @OA\Parameter(
 *         name="id",
 *         in="path",
 *         description="Status values that needed to be considered for filter",
 *         required=true,
 *         @OA\Schema(
 *             type="string",
 *         )
 *     ),
 *      @OA\RequestBody(
 *          description="Update a new item",
 *          required=true,
 *          @OA\MediaType(
 *              mediaType="multipart/form-data",
 *              @OA\Schema(
 *                  type="object",
 *                  @OA\Property(
 *                     property="name",
 *                     description="Update",
 *                     type="string",
 *                 ),
 *                  @OA\Property(
 *                     property="type",
 *                     description="Update",
 *                     type="string",
 *                 ),
 *                  @OA\Property(
 *                     property="price",
 *                     description="Update",
 *                     type="string",
 *                 ),
 *                  @OA\Property(
 *                     property="image",
 *                     description="Update",
 *                     type="file",
 *                 ),
 *              ),
 *          ),
 *      ),
 *      @OA\Response(
 *         response=200,
 *         description="successful operation",
 *      ),
 *      @OA\Response(
 *         response=400,
 *         description="Invalid user supplied"
 *     ),
 *     @OA\Response(
 *         response=404,
 *         description="User not found"
 *     ),
 *      security={{ "bearer": {} }}
 * )
 *
 */

public function update(ProductRequest $request, $id){
    /* Gate::authorize('update', $product); */
    $product = Product::find($id);
    if ($request->hasFile('image')) {

        if (isset($product->image)) {
            Storage::delete($product->image);
        }

        $path = $request->file('image')->store('images', 'public');
    }

    $product->update([
        "name"  => $request->name,
        "type"  => $request->type,
        "price" => $request->price,
        "image" => $path ?? $product->image
    ]);

    return response()->json([
        'status' => 'success',
        'message' => 'The choosen product updated successfully',
        'product' => $product,
    ]);
}

Cette erreur s'est produite dans Swagger

Échec de l'obtention. raison possible: Partage de ressources entre domaines panne de réseau Le schéma d'URL doit être "http" ou "https" pour les demandes de partage de ressources entre domaines.

Ce bug dans Postman

"message": "The given data was invalid.",
"errors": {
    "name": [
        "The name field is required."
    ],
    "type": [
        "The type field is required."
    ],
    "price": [
        "The price field is required."
    ],
    "image": [
        "The image field is required."
    ]
}

Ici, je supprime des éléments de la base de données

/**
 * @OA\Delete(
 *      path="/api/product/{id}",
 *      tags={"Products"},
 *      summary="Show the choosen element",
 *      operationId="destroy",
 *      @OA\Parameter(
 *         name="id",
 *         in="path",
 *         description="Status values that needed to be considered for filter",
 *         required=true,
 *         explode=true,
 *         @OA\Schema(
 *             default="1",
 *             type="string",
 *         )
 *     ),
 *      @OA\Response(
 *         response=200,
 *         description="successful operation",
 *      ),
 *      security={{ "bearer": {} }}
 * )
 *
 */
public function destroy($id)
{
    $product = Product::find($id);
    $product->delete();

    return response()->json([
        'status' => 'success',
        'message' => 'product deleted successfully',
        'product' => $product,
    ]);
}

}

P粉550823577P粉550823577260 Il y a quelques jours344

répondre à tous(1)je répondrai

  • P粉248602298

    P粉2486022982024-02-26 15:37:13

    D'après l'erreur du facteur, il semble qu'il ne puisse pas récupérer les champs (nom, type...) de la requête. dd demande l'objet et vois ce qui se passe.

    répondre
    0
  • Annulerrépondre