我在 Controller 的某些地方使用查询范围,但现在我尝试过滤 Blade 模板中的一些结果。我的模型有一个有订单的位置。我将位置传递给 Blade 模板,然后使用以下内容:
@foreach( $location->orders->datesearch('delivered_at','2015-10-01','2015-10-15') as $order )
{{ $order->order_number }}<br />
@endforeach
这是我的订单模型的摘录
class Order extends Model {
public function location()
{
return $this->belongsTo('App\Location', 'location_id');
}
public function scopeDatesearch($query,$datesearch,$search_date_start,$search_date_end)
{
return $query->whereBetween($datesearch, [$search_date_start, $search_date_end])->get();
}
}
位置也有很多订单。
我收到的错误是:
FatalErrorException in 56b3a0ff15f6ddc28458248fd0728a27 line 5:
Call to undefined method Illuminate\Database\Eloquent\Collection::datesearch()
我确实找到了this similar posting这似乎表明我正在做的事情应该有效。
最佳答案
从错误消息中,您可以看到 $location->orders 是一个集合,但集合中未使用范围。 尝试像这样更换 Blade :
@foreach( $location->orders()->datesearch('delivered_at','2015-10-01','2015-10-15')->get() as $order )
{{ $order->order_number }}<br />
@endforeach
关于model-view-controller - 使用 Query Scope 在 Laravel Blade 模板中过滤结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33293402/