Laravel SoftDeletes仍然返回联接中使用的记录,即使已删除的\u at不为空?
我正在查询一个模型,该模型中的联接已在NOTNULL处删除了_,但它们仍然返回结果 例如:Laravel SoftDeletes仍然返回联接中使用的记录,即使已删除的\u at不为空?,laravel,eloquent,Laravel,Eloquent,我正在查询一个模型,该模型中的联接已在NOTNULL处删除了_,但它们仍然返回结果 例如:poststable连接post\u likestable,两者都带有软删除功能 Posts::join( 'post_likes', 'post_id', '=', 'id' )->get(); 我目前的解决方法是手动检查连接,显然我更喜欢自动检查 Posts::join( 'post_likes', function ($join) use ($model)
posts
table连接post\u likes
table,两者都带有软删除功能
Posts::join(
'post_likes',
'post_id',
'=',
'id'
)->get();
我目前的解决方法是手动检查连接,显然我更喜欢自动检查
Posts::join(
'post_likes',
function ($join) use ($model) {
$join->on(
'post_id',
'=',
'id'
);
if ($model->hasColumn('deleted_at')) {
$join->whereNull('post_likes.deleted_at');
}
}
);
如果您有一个
Like
模型和Like
关系,则不需要加入。你为什么不使用它们?您没有从post\u likes
查询任何列,因此这里似乎没有必要使用join
。@Timleis我简化了我的问题,以显示我面临的基本问题。我的代码更通用,它会根据url自动生成查询。加入往往会绕过许多Eloquent的内置功能。你应该利用人际关系,这能回答你的问题吗?