laravel - 在 usersController 中调用 Laravel 资源时给了我不同的路径和错误
问题描述
我在 laravel 一周大,正在开发我的第一个 api。在我决定介绍之前,一切都很顺利resources
。当我调用该UserResource
方法时,我得到一个我无法理解的错误。我已经google了,但还没有找到答案。
这是我在邮递员上运行时遇到的错误
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 代码:
app/Http/Controllers/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/Resources/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,
];
}
}
解决方案
您忘记了new
尝试实例化 UserResource 类的操作员。如果没有 new 运算符,PHP 将寻找UserResource
在当前命名空间中调用的函数,因此您会收到该错误。
推荐阅读
- git - Gitlab部署密钥已配置但仍不授予访问权限
- mongodb - Mongo 反应式存储库和聚合不过滤结果
- java - 从 JTextField 返回字符串的 Java 方法
- python - 如何从 beautifulsoup 结果中切出所需的链接
- python - 根据第一个元素组合嵌套列表
- jquery - 如果产品类型发生变化,请执行某些操作
- kubernetes - 在 Kubernetes 部署中配置 Varnish 后端
- javascript - 如何在开发模式下使用 service-worker
- swift - 无法使用 Swift 5.3 从此异步操作中获取布尔值
- selenium - 线程自动保险杠问题