Lorsque j'essaie de mettre à jour mon message de manière fanfaronne, j'obtiens l'erreur suivante
P粉550823577
P粉550823577 2024-02-25 17:59:20
0
1
375

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粉550823577
P粉550823577

répondre à tous(1)
P粉248602298

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal