mercredi 3 mai 2017

Laravel API Request Validation

Hello: I am writing an api with Laravel.

When I try to use request validation in the controller, I get a 405 method not allowed. When I remove the request validation, everything runs smoothly.

Here is my route:

Route::post('product/create', 'Api\v1\ProductController@create');

Here is my controller:

<?php

namespace App\Http\Controllers\Api\v1;

use App\Http\Requests\CreateProduct;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Handlers\Products;
use Illuminate\Support\MessageBag;

class ProductController extends Controller
{
     /**
     * Create Product.
     */
    public function create(CreateProduct $request)
    {
       echo 'product created...';
    }
}

Here is my request validator:

<?php
namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class CreateProduct extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
     public function rules()
     {
         return [
            'title' => 'required',
            'price' => 'required',
            'short_description' => 'required'
         ];
    }

     /**
     * Set custom validation messages.
     *
     * @return array
     */
    public function messages()
    {
        return [
            'title.required' => 'Please enter a title.',
            'price.required' => 'Please enter a price.',
            'short_description.required' => 'Please enter a short description.'
        ];
    }
}

When I remove "CreateProduct $request" from the "create" method, everything works.

How can I use Laravel's request validation for api calls?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire