【问题标题】:Laravel Eloquent return conditionally when first condition not exists return another当第一个条件不存在时,Laravel Eloquent 有条件地返回返回另一个
【发布时间】:2021-10-21 14:13:04
【问题描述】:

我使用 Eloquent 获取多语言帖子标题。

    public function getTitle_en()
{
    return $this->hasOne(Meta::class, 'post_id')->where(['cat' => 'title', 'meta_name' => 'en']);
}

这返回英文标题,但有时英文标题不存在,所以我想返回另一种语言的标题。

我的意思是当使用 getTitle_en 来获取英文标题 (['cat' => 'title', 'meta_name' => 'en']) ,如果它是不存在返回另一种语言的标题,如“nl”,如果“nl” (['cat' => 'title', 'meta_name' => 'nl']) 不存在返回另一种语言,例如“gr”。

所以我想要 Eloquent 检查我的表(元)中是否存在英文标题然后返回它,否则如果英文标题不存在,检查“nl”标题是否存在返回否则检查下一种语言

【问题讨论】:

    标签: php laravel eloquent conditional-statements


    【解决方案1】:

    你可以使用这个解决方案:

    $query->orderByRaw("FIELD(status, '2', '1', '3')")

    只需将您的 where() 方法更改为接受函数即可。详情请见here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 2016-09-30
      • 1970-01-01
      • 2022-01-02
      相关资源
      最近更新 更多