0

我在 Laravel 中使用 Eloquent ORM。有 2 个模型,User 和 Trans。User hasMany Trans, Trans belongsTo User。问题是当我使用查询时,它不起作用。

我尝试->get()在最后一个代码中使用,它仍然无法正常工作。我尝试->all()在最后一个代码中使用它仍然无法正常工作。我试了whereIn,还是不行。

用户模型

public function trans()
{
    return $this->hasMany('App\Trans', 'user_id');
}

反式模型

public function user ()
{
    return $this->belongsTo('App\User','user_id');
}

控制器

$trans = Auth::user()->trans->where('date', $date);

我希望输出基于查询,其中日期基于用户输入,当我删除时->where,它可以工作并且输出是这样的。

Collection {#797 ▼
  #items: array:13 [▼
    0 => Trans {#783 ▶}
    1 => Trans {#784 ▶}
    2 => Trans {#785 ▶}
    3 => Trans {#786 ▶}
  ]
}
4

1 回答 1

1

试着像那样改变

Auth::user()->trans->where('date', $date);

Auth::user()->trans()->where('date', $date)->get();

注意:如果您只想获取属性,那么您可以不获取属性, pointer但如果您想使用另一种方法,则必须使用(添加)指针(->)。

于 2019-01-05T09:06:30.740 回答