在滔滔不绝的地方找不到WhereBetween

时间:2015-06-29 12:44:24

标签: laravel eloquent

使用Laravel 5.我有一个模型属性,它有许多周可用。这是物业模型。

<?php namespace App\Models;


use Illuminate\Database\Eloquent\Model;

/**
 * @property mixed week
 */
class Property extends Model
{


    public function week()
    {
        return $this->hasMany('App\Models\Week', 'PropertyID', 'PropertyID');
    }

}

我正在尝试使用WhereBetween方法在对象的hasMany关系上使用WhereBetween。这是我得到的错误。

方法&#39; WhereBetween&#39;没有在课程中找到&#39; illumainate \ Database \ Eloquent \ Relations \ HasMany。

list($from, $to) = $params->get('range');


$week = $property->week()
   ->whereBetween('WeekDate', array($from, $to))
   ->get();

如果我尝试使用WhereRaw而不是WhereBetween,则会发生同样的错误。 hasMany类没有WhereRaw或WhereBetween。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我在Laravel 5.2中遇到了类似的问题,代码如下:

<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background"
                               Storyboard.TargetName="Grid">
      <DiscreteObjectKeyFrame KeyTime="0"
                              Value="#FFABCDEF" />  // argb value of your desired background color
</ObjectAnimationUsingKeyFrames> 

这会抛出如下错误:

  

调用未定义的方法App \ Events :: whereBetween()

在Laravel 5.0+中我不能直接在模型上使用whereBeetween。但是在API文档中,WhereBetween仍然作为DB类的函数列出(see here)。通过用DB类替换模型,我们可以解决它:

$events = Events::whereBetween('start', array($start, $end))
                ->whereBetween('end', array($start, $end))
                ->get();