dingo / dingo/api

instance of Dingo\\Api\\Http\\Request given Error

Open
#1,761 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
PHP
Stars
9.4k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

| Q | A
| ----------------- | ---
| Bug? | no|yes
| New Feature? | no
| Framework | Laravel
| Framework version | 8
| Package version | 3.0.4
| PHP version | ^7.3|^8.0

#### Actual Behaviour

I am trying to validate the input of user from the service. I am following a [service repository pattern](https://dev.to/jsafe00/implement-crud-with-laravel-service-repository-pattern-1dkl) here. So I have created a Validator for the users input I have added it to the Service class but I get an error on Postman when trying to post data.

**Error**

`"message": "Argument 1 passed to App\\Services\\UserService::saveUser() must be an instance of App\\Requests\\UserStoreRequest, instance of Dingo\\Api\\Http\\Request given, called in C:\\laragon\\www\\nextserver\\app\\Http\\Controllers\\Api\\UserController.php on line 28",`

**Controller**

```php
protected $userService;
public function __construct(UserService $userService)
{
$this->userService = $userService;
}

public function store(Request $request)
{
try {
$result['data'] = $this->userService->saveUser($request);
}
catch (\Exception $e) {
$result = [
'error' => $e->getMessage(),
'line' =>$e->getLine()
];
}

}

```
**Request / Validation Class**

```php
use Illuminate\Foundation\Http\FormRequest;
class UserStoreRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'email' => 'required|email|unique:users',
'name' => 'required|unique:users',
'password' => 'required',
'sex' => 'required',
];
}

public function messages()
{
return [
'email.required' => 'Email field is empty!',
'name.required' => 'Name field is empty!',
'password.required' => 'Password field is empty!',
'sex.required' => 'Sex field is empty!'
];
}
}
```

**Service Class**

```php
use App\Requests\UserStoreRequest;
use App\Repositories\UserRepository;
class UserService
{
protected $userRepository;
public function __construct(UserRepository $userRepository)
{
$this->userRepository = $userRepository;
}
public function saveUser(UserStoreRequest $data)
{
$validData = $data->validated();
$result = $this->userRepository->save($validData);
return $result;
}
}
```

How do I fix this issue?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.