【问题标题】:Call to undefined function, changes on helper.php file but still cant call presentPrice function调用未定义函数,更改 helper.php 文件但仍无法调用 presentPrice 函数
【发布时间】: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
  • 我可以知道在哪里定义它吗?因为我认为视图文件不能定义“使用助手”?
  • 已回答请过目。

标签: php laravel


【解决方案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() 随处可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多