将控制器功能调用到视图中

时间:2017-04-15 15:31:12

标签: php laravel laravel-5 laravel-5.4

我有一个带有功能的Controller(UsersController):

 public function project_donated($project_id)
{
    return Donation
        ::groupBy('donations.project_id')
        ->selectRaw('sum(donations.amount) as sum, donations.project_id, projects.*')
        ->where('donations.project_id', $project_id)
        ->join('projects', 'donations.project_id', '=', 'projects.id')
        ->get()
        ->toArray();
}

此功能正常。

我将此函数返回到我的视图的同一个UserController中:

$project_donated = $this->project_donated($project_id);
return view('users.show', compact('user', 'countries', 'donation_user' , 'user_donated', 'project_donated'));

但是,我无法将$ project_id定义到我的控制器中,我需要将它指定到我的视图中,所以在我看来,我有这条线:

<?php
$project_id = $ngo->project->ngo->id;
$project_donated = UsersController::project_donated($project_id);
?>

但是我遇到了错误:Class&#39; UsersController&#39;没找到。

我不确定我是否正确地这样做。

1 个答案:

答案 0 :(得分:0)

您可以从应用程序的任何位置调用控制器。但这不是一般做法。通过一些一般实践。

 App::make('controller name')->public_methodName(params);

在以下主题中提出了类似的问题。

How to call a controller from within a view - Laravel

希望这会有所帮助。 :)