Почему мое обновление (Patch Request) ничего не сохраняет в laravel? - PullRequest
0 голосов
/ 27 июня 2019

Я готовился к домашней работе с проектом 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 в контроллер, поэтому я сделал это так, как вы видели.

1 Ответ

0 голосов
/ 28 июня 2019

Ну, после копания моя проблема была в контроллере, я только что изменил public function update(Request $request, Event $event, EventGallery $eventGallery)

на public function update(Request $request, Event $event, EventGallery $gallery)

Все еще ищу причину, почему это произошло.может быть, это потому, что я назвал галерею в моей модели событий

, как вы можете видеть сверху, я набрал галереи, но так как я пытался что-то сделать, я изменил функциональную модель на галерею, которая не помогла, но когда я изменил$ eventGallery, это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...