因此,对于这个例子,我有一个article表
+---------+----------------+------------+
| user_id | post | created_at |
+---------+----------------+------------+
| 0001 | some article | 2018-01-01 |
| 0002 | other article | 2018-01-01 |
| 0002 | some2 article | 2017-10-01 |
| 0003 | some2 article | 2017-10-01 |
+---------+----------------+------------+
这张table有 belongsTo
与用户表的关系
+------+------+------------+
| id | name | deleted_at |
+------+------+------------+
| 0001 | yo | null |
| 0002 | yea | 2017-12-31 |
| 0003 | yes | null |
+------+------+------------+
所以我想返回所有在2018-01-01发布的文章(创建于),然后它将返回所有这样的记录
+---------+----------------+------------+
| user_id | post | created_at |
+---------+----------------+------------+
| 0001 | some article | 2018-01-01 |
| 0002 | other article | 2018-01-01 |
+---------+----------------+------------+
现在,如果我也不想包含来自用户的文章,这些文章在2018-01-01之前已经删除了\at value,那么它将返回
+---------+----------------+------------+
| user_id | post | created_at |
+---------+----------------+------------+
| 0001 | some article | 2018-01-01 |
+---------+----------------+------------+
到目前为止,一切都很好,现在我问的另一个问题是,如果我在2017-10-01的文章,那么它应该会回来
+---------+----------------+------------+
| user_id | post | created_at |
+---------+----------------+------------+
| 0002 | some2 article | 2017-10-01 |
| 0003 | some2 article | 2017-10-01 |
+---------+----------------+------------+
因为当时用户0002还没有被删除 user.deleted_at = 2017-12-31 vs article.created_at = 2017-10-01
所以在那一天它应该被列入名单。
如何在同一个查询中得到这些结果?因此,当我搜索的文章与用户之前没有被删除的搜索日期比它会显示,但当我搜索的文章与用户已被删除后,搜索日期,然后它不会显示。。。
我试过了
$table = Article::leftjoin('user','article.user_id','user.id')
->where('created_at',$search_date)
->whereNull('user.deleted_at')
->get();
将只显示用户以空值删除了\u的文章。。。但是唐;我不知道如何将用户在中删除的内容与搜索日期匹配
1条答案
按热度按时间l7wslrjt1#
试试这个: