无法访问同一班级的方法

时间:2019-08-21 17:33:12

标签: php oop

我不了解其逻辑,我收到一个错误,找不到我的函数convertBinToMSSQLGuid。我知道编码没有意义,只是出于测试目的。还尝试将其设为私有,不走运。

class PowerBiResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
       dd(convertBinToMSSQLGuid($this->VehicleID));
       return '';
    }
    public function convertBinToMSSQLGuid($binguid)
    {
       $unpacked = unpack('Va/v2b/n2c/Nd',$binguid);
       return sprintf('%08X-%04X-%04X-%04X-%04X%08X', $unpacked['a'], $unpacked['b1'], $unpacked['b2'], $unpacked['c1'], $unpacked['c2'], $unpacked['d']);
    }
}

2 个答案:

答案 0 :(得分:0)

从类内部调用convertBinToMSSQLGuid时,必须使用$this->

dd($this->convertBinToMSSQLGuid($this->VehicleID));

答案 1 :(得分:0)

您不能通过直接名称直接访问任何自定义类函数。您可以通过以下方式访问:

class PowerBiResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
       dd($this->convertBinToMSSQLGuid($this->VehicleID));
       return '';
    }
    public function convertBinToMSSQLGuid($binguid)
    {
       $unpacked = unpack('Va/v2b/n2c/Nd',$binguid);
       return sprintf('%08X-%04X-%04X-%04X-%04X%08X', $unpacked['a'], $unpacked['b1'], $unpacked['b2'], $unpacked['c1'], $unpacked['c2'], $unpacked['d']);
    }
}

您可以通过引用$this->来使用该功能。希望对您有帮助。