laravel:如何将参数传递给模型中的函数?

时间:2017-12-09 10:58:43

标签: laravel

我正在使用laravel 5.5 / php 7.2 /

例如,我在模型中有这样的函数:

public function featuredTopSight($count=8)
{
    return $this->hasMany(Sight::class)
        ->wherePublish(1)
        ->latest()
        ->take($count);
}

然后,在视图中:

$sight->featuredTopSight(8);

但我收到了这个错误:

"htmlspecialchars() expects parameter 1 to be string, object given

但是$sight->featuredTopSight;我得到了正确答案。但是我无法传递参数。

1 个答案:

答案 0 :(得分:1)

在该功能中,您定义了一种关系。

您无法通过参数调用关系。

首先,您需要声明关系,然后是查询结果的查询或方法。

您的方法应该类似于:

public function sights()
{
    return $this->hasMany(Sight::class);
}

public function getFeaturedTopSights($count = 8)
{
    return $this->sights()->wherePublish(1)->latest()->take($count)->get();
}