Laravel:一个控制器的多个视图

问题描述 投票:0回答:2

我在控制器中有一个叫做index的函数,我在其中返回一个视图页面。我需要另一个视图页面使用相同的功能。如何重复使用相同的功能而不必两次执行相同的功能?

php laravel laravel-5 forge
2个回答
0
投票

您的问题对我来说还不够清楚。但我希望您需要一些全局变量。您可以在控制器中创建私有函数,然后使用$ this-> functionName在控制器中的任何位置调用它,或者创建全局变量并使用$ this-> variableName访问它们。


0
投票

如果只想在同一个控制器中重用该功能,请向该控制器添加一个私有功能,该功能执行共享功能并从所需方法中调用此功能:

class YourController extends Controller
{
    public function index()
    {
        $shared = $this->sharedFunction();

        return view('index', compact('shared'));
    }

    public function otherFunction()
    {
        $shared = $this->sharedFunction();

        return view('other', compact('shared'));
    }

    /**
     * Perform shared functionality
     */
    private function sharedFunction()
    {
        return 2 + 2;
    }
}

或者,如果您需要在控制器之间共享功能,则可能需要创建用于扩展控制器但扩展Laravel控制器的基本控制器。

© www.soinside.com 2019 - 2024. All rights reserved.