Я готовился к домашней работе с проектом 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
и там написано Обновлено, но ничего не изменится. Пожалуйста, помогите мне найти мою проблему.
Я проверил Событие и правильно импортировал, а не Фасад / Событие.
И это для SPA-приложения с vue.js. и инструктор ввел Event в контроллер, поэтому я сделал это так, как вы видели.