Как получить пользовательский столбец из модели Eloquent в массиве - PullRequest
0 голосов
/ 19 марта 2020

У меня есть столбец, который был добавлен в Eloquent Model с использованием необработанного запроса SQL, но я не могу получить значение обратно из модели при выполнении get (). Я могу распечатать модель, используя print_r (), и увидеть значение и столбец, добавленные в поля [attribute: protected] и [original: protected], но он не возвращает значение, когда я получаю (). Я добавил атрибут добавления и метод доступа, но он возвращает ноль. Пример:

$query = $query->select('*', Capsule::raw('(3959 * acos(
                                                         ( cos( radians( ' . $zip['latitude'] . ' ) )
                                                           * cos( radians( latitude ) )
                                                           * cos( radians( longitude ) - radians( ' . $zip['longitude'] . ' ) ))
                                                         + ( sin( radians( ' . $zip['latitude'] . ' ) )
                                                             * sin( radians( latitude ) ))
                                                   )
                                       ) AS distance')
                                   )->orderBy('distance');

Объект:

                    [attributes:protected] => Array
                        (
                            [zip_id] => 11753
                            [zipcode] => 29210
                            [territory_id] => 41
                            [latitude] => 34.04814020
                            [longitude] => -81.10814000
                            [last_verified] => 0000-00-00 00:00:00
                            [nextCheck] => 2020-03-16 17:40:50
                            [active] => 1
                            [distance] => 5.8993697166443E-5
                        )

                    [original:protected] => Array
                        (
                            [zip_id] => 11753
                            [zipcode] => 29210
                            [territory_id] => 41
                            [latitude] => 34.04814020
                            [longitude] => -81.10814000
                            [last_verified] => 0000-00-00 00:00:00
                            [nextCheck] => 2020-03-16 17:40:50
                            [active] => 1
                            [distance] => 5.8993697166443E-5
                        )

Возвраты:

    {
        "zip_id": 11753,
        "zipcode": "29210",
        "territory_id": 41,
        "latitude": "34.04814020",
        "longitude": "-81.10814000",
        "last_verified": "0000-00-00 00:00:00",
        "nextCheck": "2020-03-16 17:40:50",
        "active": 1,
        "distance": null
    }

В качестве бонуса, если кто-нибудь может сказать мне, почему я могу использовать пользовательский столбец в порядок, но не в месте, где на модели будет оценено.

1 Ответ

0 голосов
/ 19 марта 2020

Неважно, я понял это. Если вы удалите переменную appends и метод accessor, он автоматически добавит его к объекту. Но я все еще не могу понять, почему я не могу использовать расстояние в предложении where.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...