Laravel создал событие, возвращающее неправильную запись

В настоящее время я использую наблюдателей Laravel для реализации событий в моем проекте, однако я столкнулся с некоторой проблемой, когда созданное событие возвращает неправильную запись, например, я создаю запись с именем Like, для которой post_id установлен на 2, а user_id установлен на 1 , поэтому событие создания laravel должно возвращать эту запись, верно? за исключением того, что он возвращает запись, в которой для post_id установлено значение 0, а для user_id установлено значение 1. Мой класс LikeObserver:

class LikeObserver
{
/**
 * Handle the like "created" event.
 *
 * @param  \App\Like  $like
 * @return void
 */
public function created(Like $like)
{
    dd($like);
    $postId = $like->post_id;
    Post::find($postId)->increment('likes_count');
}
}

как вы можете видеть, всякий раз, когда я выгружаю только что созданную запись, она возвращает следующее: что возвращает laravel

мой класс LikeController:

class LikeController extends Controller
{
public function insert(Request $request)
{
    if(Like::where('user_id','1')->find($request->post_id))
    {
        return;
    }
    $like = Like::create(['post_id'=>$request->post_id,'user_id' => '1']);
}

public function remove(Request $request)
{
    Like::where('user_id',auth()->user()->id)->findOrFail($request->post_id)->delete();
}
}

Я передаю post_id со значением 2, однако Laravel возвращает только что созданную запись с post_id со значением 0.


person flex_    schedule 26.12.2019    source источник
comment
каков результат dd($request->post_id) в функции вставки?   -  person am05mhz    schedule 26.12.2019
comment
@am05mhz выводит правильный post_id, равный 2   -  person flex_    schedule 26.12.2019
comment
тогда ничего плохого не вижу, разве что где-то опечатка   -  person am05mhz    schedule 26.12.2019
comment
@ am05mhz мне тоже не очень сложно понять, проблема ли это в конце laravel .. я пытался погуглить, но не нашел похожей проблемы   -  person flex_    schedule 26.12.2019


Ответы (1)


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

public  static function boot()
{
    parent::boot();
    static::creating(function ($like){
     //returns the correct record.
     dd($like);
    });
 }
person flex_    schedule 26.12.2019