错误:无法解析依赖项,在文件Container.php中的clas JsonResource中解析$ resource

阿德里安·尤加(Adrian Iuga)

尝试对资源进行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');
});

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);
        };
    }

}

ScheduleResource

<?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行(构造函数),但我不知道如何解决。我会很感激你的帮助

马马杜贾洛

我发现您正在将api资源类传递给response()-> json(...)。我还发现,在控制器存储方法中,您传递了Schedule(它是一种api资源而不是请求对象)。

if ($schedule->save()) {
    //check below since its a resource, that should be enough
    return new Schedule($schedule);
  } else {
    return response()->json('Error can\'t save schedule', 500);
 };

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法从测试中解析依赖项

来自分类Dev

IntelliJ错误:所有maven依赖项中的“无法解析符号”

来自分类Dev

IBM Bluemix-NodeJS:无法解析清单中的依赖项

来自分类Dev

无法解析Web Api Controller中的依赖项

来自分类Dev

Cabal无法解析测试套件块中的构建依赖项

来自分类Dev

IBM Bluemix-NodeJS:无法解析清单中的依赖项

来自分类Dev

无法解析在Build.Gradle依赖项中添加的库

来自分类Dev

处理Azure Resource Manager链接模板中的依赖项

来自分类Dev

Android Studio中的build.gradle文件错误无法应用主要和依赖项

来自分类Dev

无法解析RubyMine中的文件

来自分类Dev

VPC错误:模板的“资源”块中的未解析资源依赖项[VPC]

来自分类Dev

在正确目录下生成的jar中无法解析POM中指定的依赖项

来自分类Dev

无法获取Lamar(IOC)来解析.NET Core 3.1中的API控制器依赖项

来自分类Dev

激活器为何无法解析本地Maven存储库中的自定义依赖项?

来自分类Dev

Karma 无法解析 kotlin-frontend-plugin 中的依赖项“kotlin”

来自分类Dev

为什么webpack试图解析依赖项路径中的每个文件?

来自分类Dev

抑制PHP中的解析错误

来自分类Dev

Erlang中的编译错误:“无法解析文件,放弃”

来自分类Dev

无法解析PHP中的HTML

来自分类Dev

ReactJS和Flux中的$ resource对应项

来自分类Dev

ReactJS和Flux中的$ resource对应项

来自分类Dev

添加依赖项-解析错误

来自分类Dev

PHP中的JSONArray解析

来自分类Dev

在php中解析XML

来自分类Dev

解析PHP中的值

来自分类Dev

在php中解析xml

来自分类Dev

在 PHP 中解析日期

来自分类Dev

create_resource在目录创建过程中中断了解析器的顺序

来自分类Dev

如何解析Autofac中的依赖项列表?

Related 相关文章

热门标签

归档