php 如何在Laravel 5的每个控制器中创建一个自定义帮助函数

dsf9zpds  于 2023-06-28  发布在  PHP
关注(0)|答案(4)|浏览(134)

此问题已在此处有答案

How to create custom helper functions in Laravel(23答案)
11个月前关闭。
我只是读取this post来创建一个全局函数,可以从任何控制器访问。但我不明白这是怎么回事。
我想使变量'服务'从任何控制器访问。所以,我创建了General.php并将其放入app/Http中。这是密码。

  1. <?php
  2. class General {
  3. public function getServices() {
  4. $services = "SELECT * FROM products";
  5. return $services;
  6. }
  7. }

在控制器中我包括了它

  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\General;
  4. use Illuminate\Http\Request;
  5. class HomeController extends Controller {
  6. public function index() {
  7. $title = 'Our services';
  8. $services = General::getServices();
  9. return view('welcome', compact('title','services'));
  10. }
  11. }

当我运行它时,我得到了错误Class 'App\Http\General' not found。然后我能帮上忙的人都很感激.

vaj7vani

vaj7vani1#

首先在.php文件的app目录中创建所需的函数,如下所示:

helpers.php

  1. if (!function_exists('getServices')) {
  2. public function getServices() {
  3. return DB::table('services')->get();
  4. }
  5. }

并将此文件包含在autoload/files数组中的composer.json中,作为

composer.json

  1. "autoload": {
  2. "classmap": [
  3. "database"
  4. ],
  5. "psr-4": {
  6. "App\\": "app/"
  7. },
  8. "files": [
  9. "app/helpers.php"
  10. ]
  11. },

然后是update the composer,现在您可以直接在整个项目中使用创建的函数,因为当应用程序引导时,文件会自动加载

  1. $result = getServices();
展开查看全部
ql3eal8s

ql3eal8s2#

首先,在app目录中创建一个General文件,名为General.php

  1. <?php
  2. namespace App;
  3. use Illuminate\Http\Request;
  4. class General {
  5. public function __construct()
  6. {
  7. }
  8. public function getServices() {
  9. $services = "SELECT * FROM users";
  10. return $services;
  11. }
  12. }

然后在Controller中调用这个调用

  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\General;
  5. class HomeController extends Controller {
  6. $general = new General();
  7. $services = $general->getServices();
  8. dd($services);
  9. }
展开查看全部
igsr9ssn

igsr9ssn3#

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

2g32fytz

2g32fytz4#

当我试图在composer.json中注册我的helpers.php文件时遇到了问题。我总是得到函数未定义的错误,因为我在文件的顶部包含了一个名称空间,但是当删除它时,一切都像我的魅力。那么接下来要做的是:
1.创建helpers.php文件并将其放置在app或bootstrap目录中。
1.如果你只想使用你的函数,请确保不要包含namespace。
1.包含在composer.json app/helpers.php或bootstrap/helpers.php中,具体取决于文件的放置位置。
1.运行命令composer dump-autoload
1.现在,您的功能将在您的应用程序中的任何地方进行全局访问。

相关问题