如果基于列的控制器中的条件,则添加

问题描述 投票:0回答:1

我需要在控制器中添加一个if条件。

这里是我的控制器:

  public function edit($id)
    {
        $model = Models::with('model_media')->findOrFail($id);
        $modelM = ModelMedia::get();
        if($modelM->sort == ''){
        $data['allMedia'] = ModelMedia::where([["model_id", "=", $id]])->orderBy('sort')->get();
      }else{
        $data['allMedia'] = ModelMedia::where([["model_id", "=", $id]])->orderBy('sort', 'DESC')->get();
      }

所以...如果列sort为空(null),则需要显示结果->orderBy('sort', 'DESC'),如果列sort不为空,则需要->orderBy('sort')

这是我在dd($ modelM)中得到的

Collection {#739 ▼
  #items: array:86 [▼
    0 => ModelMedia {#740 ▼
      #table: "model_medias"
      #fillable: array:5 [▼
        0 => "model_id"
        1 => "name"
        2 => "type"
        3 => "tag"
        4 => "sort"
      ]
php database laravel
1个回答
0
投票

您需要empty()功能吗? https://www.php.net/manual/en/function.empty.php

public function edit($id)
{
  $model = Models::with('model_media')->findOrFail($id);
  $modelM = ModelMedia::get();
  if(empty($modelM->sort)){
    $data['allMedia'] = ModelMedia::where([["model_id", "=", $id]])->orderBy('sort')->get();
  }else{
    $data['allMedia'] = ModelMedia::where([["model_id", "=", $id]])->orderBy('sort', 'DESC')->get();
  }
}

如果值是以下任何一个,则Empty返回true:

  • “”(一个空字符串)
  • 0(0为整数)
  • 0.0(浮点数为0)
  • “”“(0作为字符串)
  • NULL
  • FALSE
  • array()(一个空数组)
© www.soinside.com 2019 - 2024. All rights reserved.