View laravel helpers方法应该如何从视图与数据库交互?

View laravel helpers方法应该如何从视图与数据库交互?,view,laravel,helper,View,Laravel,Helper,在我的视图中,我列出了来自解析xml的流表行,其中包含一个特定的mysql表ID,我想用它来计算表中现有的行数。 我如何在laravel视图中使用一个helper函数,它需要这个id并返回计数行 差不多 @foreach ($items as $item) counted:{{count_rows($item->id)}} @endforeach 在您的视图中,您不应该进行此类计算,这是您的模型应该做的事情,或者,可能是您的控制器。这是一个例子: class Billing exte

在我的视图中,我列出了来自解析xml的流表行,其中包含一个特定的mysql表ID,我想用它来计算表中现有的行数。 我如何在laravel视图中使用一个helper函数,它需要这个id并返回计数行

差不多

@foreach ($items as $item)

counted:{{count_rows($item->id)}}

@endforeach

在您的视图中,您不应该进行此类计算,这是您的模型应该做的事情,或者,可能是您的控制器。这是一个例子:

class Billing extends Controller {

    public function show($id)
    {
        $billing = Billing::find($id);

        return View::make('billing.show')->with('billing', $billing->getAllWithItems())
    }

}

class Billing extends Eloquent {

    public function getAllWithItems() 
    {
        return DB::table('billing')
            ->select(DB::raw('COUNT(items.id) as item_count')))
            ->left_join('items', 'items.billing_id', '=', 'billing.id')
            ->group_by('items.id')
            ->get();
    }

}

感谢您的反馈,我重新分解了代码,并将所有内容绑定到模型中。有一件事我真的不喜欢我的html冗余s。很好!如果您正在构建一个大型应用程序,那么也可以考虑使用存储库模式,在您的模型中没有与域相关的代码,只考虑与数据库访问相关的内容。