Laravel 5 调用未定义的方法Grimzy\LaravelMysqlSpatial\Eloquent\SpatialExpression::getLat()

Laravel 5 调用未定义的方法Grimzy\LaravelMysqlSpatial\Eloquent\SpatialExpression::getLat(),laravel-5,Laravel 5,我使用LaravelMySQL空间包在数据库中存储地理坐标。在其他地方使用时,例如,一切都很好。但是当我在一个观察者中使用它时,错误来了 Call to undefined method Grimzy\LaravelMysqlSpatial\Eloquent\SpatialExpression::getLat() 以下代码不是给定点对象 public function created(Beneficiary $beneficiary) { dd($beneficiary

我使用LaravelMySQL空间包在数据库中存储地理坐标。在其他地方使用时,例如,一切都很好。但是当我在一个观察者中使用它时,错误来了

Call to undefined method Grimzy\LaravelMysqlSpatial\Eloquent\SpatialExpression::getLat()
以下代码不是给定点对象

public function created(Beneficiary $beneficiary)
    {
        dd($beneficiary);
    }
但是当我使用下面创建的id检索数据时,它工作得很好

public function created(Beneficiary $beneficiary)
    {
        $beneficiary = Beneficiary::find($beneficiary->id);
        dd($beneficiary);
    }
但上述做法并不被视为良好做法。我已经有了一个对象,并再次调用它

预期结果。这个结果是在我调用以检索相同的数据之后出现的

#attributes: array:19 [▼
    "id" => 95
    "name" => "Test beneficiary"
    "phone" => "80572*****"
    "coordinates" => Point {#547 ▼
      #lat: 30.3165
      #lng: 78.0322
    }
这就是我得到结果的方式

#attributes: array:16 [▼
    "name" => "Test beneficiary"
    "phone" => "80572*****"
    "coordinates" => SpatialExpression {#521 ▼
      #value: Point {#510 ▼
        #lat: 30.3165
        #lng: 78.0322
      }
    }
请执行以下操作:

$p = Point::fromWKT($elm->coordinates->getSpatialValue());
现在您可以使用:

$p->getLng()
$p->getLat()
请执行以下操作:

$p = Point::fromWKT($elm->coordinates->getSpatialValue());
现在您可以使用:

$p->getLng()
$p->getLat()