为什么我的更新(补丁请求)不会在laravel中保存任何内容?

时间:2019-06-27 19:56:05

标签: php laravel vue.js

我正在使用laravel项目进行家庭作业培训,这是我的问题:

我有一个具有Event名称和与此数据库的关联关系的数据库,其中两个分别是events_newsevent_gallery,这些新闻更新不能很好地用于购买图库工作,我用新闻的方式做到了这一点,我曾与邮递员进行过尝试,但我只收到“更新的响应”,但没有任何变化。

这是我的活动模型:

protected static function boot()
{
    parent::boot();

    static::creating(function ($event){
        $event->slug = str_slug($event->name);
    });
}

public function getRouteKeyName()
{
    return 'slug';
}

protected $with = ['galleries','news'];

public function news(){
    return $this->hasMany(EventNews::class);
}

public function galleries()
{
    return $this->hasMany(EventGallery::class);
}

public function getPathAttribute()
{
    return "/admin/events/$this->slug";
}

这是我的画廊和新闻模型:我以前都使用过守卫,但是我已经在画廊中添加了fillable来查看它是否起作用。

class EventGallery extends Model
{
  protected $fillable = ['event_id', 'url', 'body', 'flag'];

  public function event()
    {
       return $this->belongsTo(Event::class);
    }
}

 class EventNews extends Model
 {

     protected $guarded = [];

     public function event()
       {
        return $this->belongsTo(Event::class);
       }
}

这是我的控制器:

public function update(Request $request, Event $event, EventGallery $eventGallery)
{
    /I've tried this and got same result
    $eventGallery->update($request->all());

    /I've tried this and still got the same result
    $eventGallery->update(
        [
            'url' => $request->url,
            'body' => $request->body,
            'flag' => $request->flag,

        ]
    );
    return response('Updated', Response::HTTP_ACCEPTED);
}

Api:

Route::apiResource('/admin/events/{event}/gallery', 'Events\EventsPictureController');

我将使用http://127.0.0.1:8000/api/admin/events/international-2019/gallery/2

在数据库中测试真实数据

,上面写着“已更新”,但没有任何变化。请帮助我找到我的问题。

  

我已经检查了Event并正确地导入了Facade / Event。

这是用于带有vue.js的SPA应用程序。并且讲师将Event注入到控制器中,这就是为什么我像您看到的那样完成它。

1 个答案:

答案 0 :(得分:0)

发现我的问题之后是在Controller中 我刚刚更改了@Override protected OAuth2AccessTokenResponse readInternal(Class<? extends OAuth2AccessTokenResponse> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException { try { @SuppressWarnings("unchecked") Map<String, String> tokenResponseParameters = (Map<String, String>) this.jsonMessageConverter.read( PARAMETERIZED_RESPONSE_TYPE.getType(), null, inputMessage); return this.tokenResponseConverter.convert(tokenResponseParameters); } catch (Exception ex) { throw new HttpMessageNotReadableException("An error occurred reading the OAuth 2.0 Access Token Response: " + ex.getMessage(), ex, inputMessage); } }

public function update(Request $request, Event $event, EventGallery $eventGallery)

仍在寻找发生这种情况的原因。也许是因为我在事件模型中调用了艺廊

正如您在顶部看到的那样,我键入了图库,但是由于我尝试了任何事情,因此我将功能模型更改为没有帮助的图库,但是当我更改$ eventGallery时,它起作用了。