Как передать getAttribute с response () -> json в ajax результат на Laravel - PullRequest
0 голосов
/ 25 апреля 2019

У меня маленькая функция laravel, вызываемая из ajax. Затем я должен вернуть результат в результат ajax. Например

Public function Edit(Request $request){
        $user = User::find($request->id);
       //.........
        return response()->json($user);
}

Но у меня есть проблема со свойством salary из-за того, что оно получается из метода getSalaryAttribute

public function getPositionnameAttribute(){
   ...........
}

Итак, при возвращении результата ajax 'undefined', это разумно, потому что свойство 'salary' не существует. Мне не нужно делать конкретную коллекцию для обработки только параметра заработной платы.

Любые советы или рекомендации будут с благодарностью, спасибо.

Ответы [ 3 ]

2 голосов
/ 25 апреля 2019

У вас есть два варианта:

  1. добавить protected $appends = ['salary'] к вашей модели

или

  1. добавить его во время выполнения: $user->append('salary')->toArray();

Ознакомьтесь с документами: https://laravel.com/docs/5.8/eloquent-serialization#appending-values-to-json

1 голос
/ 25 апреля 2019

Добавление во время выполнения добавьте этот атрибут в массив $ attribute,

Метод добавления.Или вы можете использовать метод setAppends для переопределения всего массива добавленных свойств для данного экземпляра модели.

return $user->append('salary')->toArray();

return $user->setAppends(['salary'])->toArray();
1 голос
/ 25 апреля 2019

Вам необходимо добавить этот атрибут в массив $attributes.

Модель

$protected $attributes = ['possition_name'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...