Автоматическое изменение результата запроса на int в Laravel - PullRequest
0 голосов
/ 29 апреля 2020

Я запрашиваю в своей базе данных этот код:

public function searchProduct(array $search = [])
    {
        return $this->select('product_id', 'name')
                    ->where('name', 'LIKE', '%' .$search['product_name'] . '%')
                    ->get();
    }

Я проверяю данные моего ответа, затем вижу коллекцию с правильными данными:

Illuminate\Database\Eloquent\Collection {#290
  #items: array:11 [
    0 => App\Models\ShopfrontProductMaster {#291
      #table: "shopfront_product_master"
      #primaryKey: "product_id"
      #connection: "mysql"
      #keyType: "int"
      +incrementing: true
      #with: []
      #withCount: []
      #perPage: 15
      +exists: true
      +wasRecentlyCreated: false
      #attributes: array:2 [
        "product_id" => "11E86F49-5930-62DA-BF8B-0A1468096C0D"
        "name" => "Iron Jack Crisp Australian Lager Bt 330ml 24pk"
      ]
      #original: array:2 [
        "product_id" => "11E86F49-5930-62DA-BF8B-0A1468096C0D"
        "name" => "Iron Jack Crisp Australian Lager Bt 330ml 24pk"
      ]
      #changes: []
      #casts: []
      #classCastCache: []
      #dates: []
      #dateFormat: null
      #appends: []
      #dispatchesEvents: []
      #observables: []
      #relations: []
      #touches: []
      +timestamps: true
      #hidden: []
      #visible: []
      #fillable: []
      #guarded: array:1 [
        0 => "*"
      ]
    }
    ...

Но когда я использую toArray ( ), он автоматически конвертирует мой product_id в int:

array:11 [
  0 => array:2 [
    "product_id" => 9223372036854775807
    "name" => "Iron Jack Crisp Australian Lager Bt 330ml 24pk"
  ]

Я действительно не знаю, почему это произошло. Можете ли вы дать мне решение, чтобы это исправить?

Большое спасибо!

...