Laravel仅在满足多对多关系条件的情况下显示模型吗?

时间:2020-05-02 17:41:55

标签: mysql laravel eloquent

因此,我有一个具有“多对多”关系的模型“类别”和一个模型“ Post”。

基本上,我在某个地方输出了类别,并且我想要这种类型的伪输出;

  • 如果任何属于某个类别的帖子的“隐藏”属性都设置为true,则不要返回该类别。 (因此,即使该类别有100个帖子,即使其中有一个帖子具有“隐藏”为真,也不要返回该类别。

这是我到目前为止尝试过的方法,但是,如果所有帖子都标记为隐藏,这似乎只会隐藏类别。如果其中有一个“隐藏”为假,即使其他99个为真也显示。这与我想发生的事情完全相反。

Category::latest()->whereHas('posts', function ($query) { 
    return $query->where('hidden', false);
})->get();

希望有人可以提供帮助。

1 个答案:

答案 0 :(得分:0)

您需要取消条件。您当前的查询是“具有未隐藏帖子的所有类别”。您需要“所有没有隐藏帖子的类别。”

var
  Form1: TForm1;

...

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := ...;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Form1 := nil;
end;

...

if Form1 <> nil then
  ...
相关问题