调用未定义函数,更改 helper.php 文件但仍无法调用 presentPrice 函数

Posted

技术标签:

【中文标题】调用未定义函数,更改 helper.php 文件但仍无法调用 presentPrice 函数【英文标题】:Call to undefined function, changes on helper.php file but still cant call presentPrice function 【发布时间】:2019-04-16 01:19:47 【问题描述】:

在我的视图文件中,我尝试添加此代码,但无法调用函数名称'当前价格'

<table>
   <tr>
    <td>RM presentPrice(session()->get('coupon')['name'])</td>
   </tr>
 </table>

这个函数我添加到app/helper路径中

<?php
   class helpers
    function presentPrice($price)
   
    return money_format('$%i', $price / 100);
   

当然我必须运行 composer dump-autoload。但它仍然向我显示未定义的功能

【问题讨论】:

你定义了Helper Class 我可以知道在哪里定义它吗?因为我认为视图文件不能定义“使用助手”? 已回答请过目。 【参考方案1】:

创建您的帮助文件

/app/Helpers/Helper.php

<?php 

namespace App\Helpers;
class Helper
    public static function MoneyFormat($number)

/config/app.php

定义别名

'Helper' => App\Helpers\Helper::class,

/app/Http/Controllers/YourController.php

use Helper;

随心所欲地使用它

Helper::MoneyFormat($price)

【讨论】:

它在我定义别名时显示错误未定义的类错误。 您是否创建了帮助文件/app/Helpers/Helper.php 更新了我的答案 我的路径在这里---> app/helpers.php【参考方案2】:

你已经把它放在了一个类中。如果你想定义辅助函数,你应该:

将您的助手源更改为:

<?php
function presentPrice($price) 
    return money_format('$%i', $price / 100);

然后将其添加到您的 composer.json

"autoload": 
    "files": [
         "app/helper.php"
    ],
    keep the rest of the autoload parts as is

然后再次运行composer dump-autoload。这应该使文件app/helper.php 每次都自动加载。 (如果文件位于不同的路径,则相应更新)

这将使presentPrice() 随处可用。

【讨论】:

以上是关于调用未定义函数,更改 helper.php 文件但仍无法调用 presentPrice 函数的主要内容,如果未能解决你的问题,请参考以下文章

如何调用控制器的方法?

更改 PHP 版本后调用 Xampp 中未定义的函数 mb_detect_encoding() (PHPmyadmin)

未定义的引用,但 objdump 显示函数在目标文件中?

自动加载中的 Laravel 5.1 Composer.json 调用文件

调用 PHP 中未定义的函数和数组键,即使它已明确定义?

“未定义符号”,但函数已定义和声明,没有拼写错误