【发布时间】:2020-04-16 13:21:28
【问题描述】:
我目前正在使用 Laravel 观察者在我的项目中实现事件,但是,我遇到了一些创建的事件返回错误记录的问题,例如,我创建了一个名为 Like 的记录,它的 post_id 设置为 2 和 user_id设置为 1,所以 laravel created 事件应该返回这条记录,对吗?除了它返回一条记录,其中 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');
}
}
我的 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。
【问题讨论】:
-
插入函数中
dd($request->post_id)的结果是什么? -
@am05mhz 它转储正确的 post_id 是 2
-
我看不出有什么问题,除了某处可能有错别字
-
@am05mhz 我也很难知道它是否是 laravel 的问题.. 我尝试谷歌搜索但没有找到类似的问题
标签: php laravel eloquent laravel-events