我在控制器中有一个叫做index的函数,我在其中返回一个视图页面。我需要另一个视图页面使用相同的功能。如何重复使用相同的功能而不必两次执行相同的功能?
您的问题对我来说还不够清楚。但我希望您需要一些全局变量。您可以在控制器中创建私有函数,然后使用$ this-> functionName在控制器中的任何位置调用它,或者创建全局变量并使用$ this-> variableName访问它们。
如果只想在同一个控制器中重用该功能,请向该控制器添加一个私有功能,该功能执行共享功能并从所需方法中调用此功能:
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控制器的基本控制器。