我正在使用laravel项目进行家庭作业培训,这是我的问题:
我有一个具有Event
名称和与此数据库的关联关系的数据库,其中两个分别是events_news
和event_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注入到控制器中,这就是为什么我像您看到的那样完成它。
答案 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时,它起作用了。