Мне неделю назад в Laravel, и я работаю над своим первым API.
Все работало хорошо, пока я не решил ввести resources
. Когда я вызываю метод UserResource
, я получаю ошибку, которую не могу понять. Я погуглил, но пока не нашел ответа.
Это ошибка, с которой я сталкиваюсь при работе с почтальоном.
Symfony\Component\Debug\Exception\FatalThrowableError: Call to undefined function App\Http\Controllers\Api\UserResource()
Файл ресурсов находится в app/Http/Resources/
Оформить возвращенный путь
App\Http\Controllers\Api\UserResource
но я добавляю
App\Http\Resources\UserResource;
Код Laravel:
приложение / Http / Контроллеры / Api / usersController.php
use App\User;
use App\Http\Resources\UserResource;
class UsersController extends Controller
{
public function login(Request $request)
{
$this->validate($request, [
'email' => 'required',
'password' => 'required',
]);
$email = $request->email;
$password = $request->password;
$user = User::where('email', $email)->where('password', $password)->first();
if($user) {
$success['token'] = $user->createToken('myapp')-> accessToken;
$success['user'] = UserResource($user);
return response()->json(['success' => $success], 200);
}
return response()->json(['error' => 'UnAuthorised'], 401);
}
}
приложение / Http / Ресурсы / UserResource.php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class UserResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'first_name' => $this->first_name,
'other_names' => $this->other_names,
'email' => $this->email,
'phone_number' => $this->phone_number,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
}