Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从辅助函数返回或回显一个值就是给该值加上一个“a”;空";PHP_Php_Laravel - Fatal编程技术网

从辅助函数返回或回显一个值就是给该值加上一个“a”;空";PHP

从辅助函数返回或回显一个值就是给该值加上一个“a”;空";PHP,php,laravel,Php,Laravel,目前,我创建了一个帮助函数,通过检查一个.xlxs价格文件来计算产品价格,该文件有两列,a表示天数,B表示该行的价格 现在,在我显示价格的报价页面上,这一切都很好,但是当我在处理付款时再次运行检查以确保价格正确时,我会得到不同的返回值。完全相同的数据将进入完全相同的辅助函数 例如,我的产品显示页面上的响应将显示价格值,例如“40”。但当我在BookingController上调用它时(使用laravel),我得到“40”,然后在它下面的另一个简单地说“null”。这使我无法计算一个价格,将其转换

目前,我创建了一个帮助函数,通过检查一个.xlxs价格文件来计算产品价格,该文件有两列,a表示天数,B表示该行的价格

现在,在我显示价格的报价页面上,这一切都很好,但是当我在处理付款时再次运行检查以确保价格正确时,我会得到不同的返回值。完全相同的数据将进入完全相同的辅助函数

例如,我的产品显示页面上的响应将显示价格值,例如“40”。但当我在BookingController上调用它时(使用laravel),我得到“40”,然后在它下面的另一个简单地说“null”。这使我无法计算一个价格,将其转换为美分/便士,用于stripe,因为它表示无效的正整数

我已经做了一些调试,当我在helper函数中添加$price时,它只返回“40”,但当我在控制器中的变量上添加dd时,它会显示一个无效的变量,该变量下面有price和“null”

你知道这是怎么回事吗

我试着在helper函数中返回值,我也试着回显并打印它,都是同样的问题。我现在将向您展示我的代码:

$price2 = (new \App\Price\GeneratePrice($duration, $base_price))->calculate();
这是helper函数

 public function calculate()
{
    $pricelist = '/public/pricelist.xlsx';

    \Excel::load($pricelist, function ($reader) {

       $days = $this->duration;
        $base = $this->basePrice;

        $array = $reader->select(array('days', 'price'))->toArray();
        $size = sizeof($array);
        if ($days > $size) {
            $key = array_search($size, array_column($array, 'days'));
            $diff = $this->duration - $size;
            $k = $array[$key]['price'];
            $baseprice = $base * $diff;
            $price = $k + $baseprice;

            echo $price;
        }
        else {

            $key = array_search($days, array_column($array, 'days'));
            $k = $array[$key]['price'];
            $price = $k;

            echo $price;

        }

    });
}
这就是我得到的回应

38

“NULL”

您的“NULL”可能意味着您在测试某个东西时在某处留下了一个
echo
var\u dump
。这通常是有多个输出的原因,而您只需要一个。我已经检查过了,但找不到任何东西。我发现“null”指的是在Excel::load之后不返回值。我想不出怎样才能把它退回来我已经想好了。我不会还的。我在构造函数中生成$price=$this->price,并返回$this->price;一切顺利。当你不断尝试时,你会发现:干得好!总是很高兴看到有人积极地尝试解决问题,而不是等待其他人为他们做脏活。你的“NULL”可能意味着你在测试某个东西时在某个地方留下了一个
echo
var\u dump
。这通常是有多个输出的原因,而您只需要一个。我已经检查过了,但找不到任何东西。我发现“null”指的是在Excel::load之后不返回值。我想不出怎样才能把它退回来我已经想好了。我不会还的。我在构造函数中生成$price=$this->price,并返回$this->price;一切顺利。当你不断尝试时,你会发现:干得好!总是很高兴看到有人积极地试图解决问题,而不是等待别人为他们做脏活。