当前位置: 首页 > 知识库问答 >
问题:

如何制作自定义帮助函数,在Laravel 5的每个控制器中都可用[重复]

孙化
2023-03-14

我刚刚阅读了这篇文章,以创建一个可以从任何控制器访问的全局函数。但我不明白它是如何工作的。

我想让变量服务可以从任何控制器访问。所以,我 General.php 并把它放在app/Http中。这是代码。

<?php
class General {

   public function getServices() {
      $services = "SELECT * FROM products";
      return $services;
   }
}

在控制器中我包括它

<?php
namespace App\Http\Controllers;

use App\Http\General;
use Illuminate\Http\Request;

class HomeController extends Controller {
   public function index() {

       $title = 'Our services';
       $services = General::getServices();

       return view('welcome',  compact('title','services'));

   }
}

当我运行它时,我收到错误类“应用程序\http\常规”找不到。然后我怎么能 任何人都可以提供帮助将不胜感激。

共有3个答案

丁景山
2023-03-14

如果你想使用任何全局函数,那么你可以创建自己的帮助程序类或函数,然后在自动加载中注册该类,这就是你所要做的。现在,无论您想在哪里,都可以调用该函数

闾丘博超
2023-03-14

首先,在名为 General.php的应用程序目录中创建一个常规文件

<?php 
namespace App;
use Illuminate\Http\Request;

class General {

public function __construct()
{

}

public function getServices() {
  $services = "SELECT * FROM users";

  return $services;
}
}

然后在Controller中,您要调用此调用

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\General;

class HomeController extends Controller {

    $general = new General();
    $services = $general->getServices();
    dd($services);

}
仲孙夕
2023-03-14

首先在< code >内的< code>app目录中创建所需的函数。php文件为

helpers.php

if (!function_exists('getServices')) {
    public function getServices() {
        return DB::table('services')->get();
    }
}

并将此文件包含在 Composer.json 中的自动加载/文件数组中

组合器.json

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/helpers.php"
    ]
},

然后<code>更新composer</code>,现在您可以在整个项目中直接使用创建的函数,因为当应用程序启动时,文件会自动加载

$result = getServices();
 类似资料:
  • 现在,我从Visual Studio 2015提供的默认ASP.NET核心Web应用程序项目模板开始,包括对单个用户帐户的身份验证。 大多数(如果不是所有)生成的控制器都返回视图,通常遵循以下模式: 此方法返回一个您可以看到的视图,当web客户机请求时,一切都很好。但是如果游戏正在向相同的方法发送请求呢?在这种情况下,需要一个JSON响应(不是view/html文档),我的问题是在ASP.NET核

  • 我可以像这样在每个视图中访问一个函数。 在我的AppService提供代码 如何在每个控制器中访问它? 在每个控制器中调用函数的最佳方式是什么,因为我需要确保来自数据库的最新记录。

  • 我有两个控制器和。 在中,我有一个名为的方法。 如何在中访问此方法?

  • 问题内容: 我正在使用angularjs编写示例应用程序。我在chrome浏览器上遇到以下错误。 错误是 错误:[ng:areq] http://errors.angularjs.org/1.3.0-beta.17/ng/areq?p0=ContactController&p1=not%20a%20function%2C%20got%20undefined 呈现为 参数“ ContactContr

  • 问题内容: 我正在使用angularjs编写示例应用程序。我在chrome浏览器上遇到以下错误。 错误是 错误:[ng:areq] http://errors.angularjs.org/1.3.0-beta.17/ng/areq?p0=ContactController&p1=not%20a%20function%2C%20got%20undefined 呈现为 参数“ ContactContr

  • 问题内容: 如何使用TypeScript定义我的控制器。到目前为止,它在angular js中,但是我想更改为type script。以便可以快速检索数据。 问题答案: 我决定通过工作示例添加另一个答案。这是非常简单的版本,但应该显示所有的基本如何向我们 和 。 有一个工作的家伙 这将是我们扮演服务器的角色。 这将是我们的启动模块: 所以以后我们可以使用module 。这就是我们的index.ht

  • 是的,以前有人问过这个问题,但我找不到任何解决办法。所以我刚买了一个新的VPS(Ubuntu14.04)来开发,因为我不想再在我的主VPS上工作了 Ive copy将我的主VPS(一切正常)中的每个文件粘贴到我的新VPS,安装了所有内容,现在想启动我的nodejs应用程序。 但是,我收到以下错误: SyntaxError:意外的令牌函数 我的代码: 很明显,help me()函数只是一个测试函数,

  • 问题内容: 我有多个路线的多个控制器: 和使用的伪指令,通过这种方式: 每个控制器都不同。我希望$ scope.func在route1中时会记录“ route 1”,而FirstController是当前控制器,而在Route 2中时会记录“ route 2”,但在控制台中只有“ rout 1”。您能否告诉我为什么更改路径不会更改$ scope指令? 问题答案: 孤立范围 是我用来重用一个函数的方