laravel - 错误:无法解析的依赖关系解析文件 Container.php 中 class JsonResource 中的 $resource
问题描述
当我尝试对资源进行 POST 调用时遇到此问题。我正在努力解决这个错误几个小时。有人能帮帮我吗?
api.php
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::post('login', 'UserController@login')->name('login');
Route::post('register', 'UserController@register')->name('register');
Route::group(['middleware' => 'auth:api'], function(){
Route::post('details', 'UserController@details');
Route::apiResource('schedule', 'ScheduleController');
});
调度控制器
<?php
namespace App\Http\Controllers;
use App\Schedules;
use App\Http\Resources\Schedule;
use Illuminate\Http\Request;
class ScheduleController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(){
return Schedule::collection(Schedules::all());
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create(){
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Schedule $request)
{
$schedule = new Schedules();
if (isset($request['title'])) {
$schedule->title = $request['title'];
};
if (isset($request['start'])) {
$schedule->start = $request['start'];
};
if (isset($request['end'])) {
$schedule->end = $request['end'];
};
if ($schedule->save()) {
return response()->json(new Schedule($schedule), 200);
} else {
return response()->json('Error can\'t save schedule', 500);
};
}
/**
* Display the specified resource.
*
* @param \App\Schedule $schedule
* @return \Illuminate\Http\Response
*/
public function show(Schedule $id)
{
return response()->json(new Schedule(Schedules::find($id)), 200);
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Schedule $schedule
* @return \Illuminate\Http\Response
*/
public function edit(Schedule $schedule)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Schedule $schedule
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Schedule $schedule)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Schedule $schedule
* @return \Illuminate\Http\Response
*/
public function destroy(Schedule $id)
{
if (Schedules::find($id)->delete()) {
return response()->json('Success on delete carpet', 200);
} else {
return response()->json('Error can\'t delete carpet', 500);
}
}
public function creazaProgramare(Schedule $request)
{
$schedule = new Schedules();
if (isset($request['title'])) {
$schedule->title = $request['title'];
};
if (isset($request['start'])) {
$schedule->start = $request['start'];
};
if (isset($request['end'])) {
$schedule->end = $request['end'];
};
if ($schedule->save()) {
return response()->json(new Schedule($schedule), 200);
} else {
return response()->json('Error can\'t save schedule', 500);
};
}
}
调度资源
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class Schedule extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'title' => $this->title,
'start' => $this->start,
'end' => $this->end
];
}
}
时间表模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Schedules extends Model
{
//
}
正如我在其他人身上看到的那样,我尝试运行“composer install”。似乎问题来自 JsonResource 第 55 行(构造函数),但我不知道如何解决它。我会很感激你的帮助
解决方案
我尝试了两种解决方案,但都不起作用。
我面临的错误是:
Illuminate\Contracts\Container\BindingResolutionException: Unresolvable dependency resolve [Parameter #0 [ <required> $resource ]] in class Illuminate\Http\Resources\Json* JsonResource * in file Illuminate\Container* Container.php on line 1032 *
推荐阅读
- android - Flutter 在添加 cloud_firestore 依赖时显示错误
- javascript - 如何使用 setInterval 触发一个函数,以便我可以在某个时候停止它?
- swift - 客户端崩溃后无法重新连接到 gRPC 服务器
- html - CSS flexbox 用元素填充细长但高元素右侧的可用空间,同时忽略 flex-direction 行/列轴限制
- selenium - 无法使用 selenium 登录
- python - 我的表情包命令很慢。如何让它更快地响应?
- node.js - MongooseError:操作 `users.findOneAndUpdate()` 缓冲在 10000 毫秒后超时
- makefile - 在目标中附加目标
- node.js - Cloud Run 使用自定义域返回 400 错误请求
- msbuild - 无法使用包参考