【问题标题】:Laravel 5.5 How to add dynamic conditions inside a relationship?Laravel 5.5 如何在关系中添加动态条件?
【发布时间】:2018-01-31 13:50:07
【问题描述】:

我有一个关系来获取在使用静态日期参数的特定日期创建的朋友

public function friends()
{
    return $this->hasMany(Friend::class)->where('created_at','2018-01-31');
}

但我需要在 $request 变量在关系中不可用的动态日期获取它。我试过这样,但不起作用

public function friends($request)
{
    return $this->hasMany(Friend::class)->where('created_at',$request->date);
}

我该如何解决这个问题?

【问题讨论】:

    标签: php laravel laravel-5.5


    【解决方案1】:

    你可以使用 Laravel 辅助函数request()

    request函数返回当前请求实例或获取输入项

    public function friends()
    {
        $date = request('date') ? : '2018-01-31'; // You can choose a default date, here '2018-01-31'
    
        return $this->hasMany(Friend::class)->where('created_at', $date);
    }
    

    【讨论】:

      【解决方案2】:

      模型将保持与您发布的相同:

      public function friends($date)
      {
          return $this->hasMany(Friend::class)->where('created_at', $date);
      }
      

      在您的控制器中(示例):

      $fooFriends = $foo->friends('2018-01-30')->get();
      
      //Directly from $request or you can use different values/vars each time
      $fooFriends = $foo->friends($request->date)->get();
      

      【讨论】:

        【解决方案3】:

        你可以在控制器中做这样的事情

        public function data(){
        
            Mdalname::friend($value)
        }
        

        在模态中

        public function friends($value )
        {
        
            return $this->hasMany(Friend::class)->where('created_at', $value);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-07-13
          • 2015-11-25
          • 2020-02-28
          • 2014-10-09
          • 1970-01-01
          • 1970-01-01
          • 2019-11-18
          • 2012-12-07
          相关资源
          最近更新 更多