gpt4 book ai didi

javascript - Laravel Controller 包含文件问题

转载 作者:行者123 更新时间:2023-12-01 02:09:37 24 4
gpt4 key购买 nike

为了在 Controller 中整合一些庞大的代码,我已经能够在函数内部执行此操作

public function myCustomFunction(Request $request){
include(app_path() . '/myFunctions/myCustomFunction1.php');
}

它确实成功工作,但通过执行包含,我注意到它不携带 Controller 中设置的命名空间和/或其他变量。

如果它只是一个简单的模型,我可以添加它

Use \App\myModel;

到 Controller 的顶部,它运行代码就像 Controller 的一部分一样。

我遇到的问题是当我想运行验证时。我不知道要“使用”什么来在包含的页面上工作。

如果我在 Controller 中运行我的逻辑而不执行包含,它可以工作,但如果放在包含内,它就不会,并且我也不会收到任何错误。

我在包含页面中尝试了此操作以从内部激活验证包含文件

namespace App\Http\Controllers;
use Validator;
use Request;

它模仿了原来的 Controller ,但仍然不起作用。我想做的事情是可能的,但我做错了什么吗?或者我正在做一些永远不会成功的事情?如果一切都失败了,我可以将代码保留在实际 Controller 中以使其工作,但我试图在复杂的 Controller 上实现某种清晰度。比如...

public function myCustomFunction(Request $request){
if(request('value1')=='1'){
include(app_path() . '/myFunctions/myCustomFunction1.php');
}else{
include(app_path() . '/myFunctions/myCustomFunction2.php');
}
}

此结构已经适用于任何不需要验证的内容,因此我希望有一种简单的方法可以将包含页面挂接到原始 Controller 可以访问的同一组验证工具中。

最佳答案

在 Controller 中,因此错误地包含了文件。最好在应用程序文件夹中创建一个 Helpers 文件夹,在其中使用您的函数创建类。

namespace App\Helpers;

class HelpersOne {
public function myFunctionOne(){.../*youre code*/}
public function myFunctionTwo(){.../*youre code*/}
}

并且已经在您的 Controller 中您可以调用这些类。

use App\Helpers\HelpersOne;
...
public function myCustomFunction(Request $request){
if(request('value1')=='1'){
$myFunction = new HelpersOne();
$myFunction->myFunctionOne();
}else{
$myFunction = new HelpersTwo();
$myFunction->myFunctionTwo();
}
}

关于javascript - Laravel Controller 包含文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49845556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com