Не могу запросить JSON (Laravel + VueJS)

моя проблема точно знакома с этим не могу запросить данные JSON в Laravel 5.2

Уже пытались реализовать правильный ответ от него, но все же, не повезло.
Я не знаю почему ….

Предыдущее, я нашел это Laravel 5.2 Проблема функционального теста Codeception с запросами PUT / PATCH тоже уже попробую воспользоваться предложением от него, но тоже не повезло.

Вот мой контроллер Laravel

public function update(Request $request, $id)
{
$phonebook = Phonebook::findOrFail($id);
$phonebook->update($request->all());

// even i try this
// Phonebook::findOrFail($id)->update($request->all());
// return Response::json() or return response()->json();
// No luck
}

Моя функция в сценарии vue для обновления данных

editContact: function(id)
{
this.edit = true
var contactid = this.newContact.ID

this.$http.patch('/api/contact/' + contactid, this.newContact, function (data) {
console.log(data)
})
},

Измените мой сценарий Vue, чтобы он был как правильный ответ на вопрос выше, тот же результат. Нет эффекта.

И моя кнопка, чтобы сделать редактирование, как это

<form action="#" @submit.prevent="addNewContact">

<div class="form-group">
<label for="contactName">Name : </label>
<input type="text" v-model="newContact.CONTACTNAME" class="form-control" id="contactName">
</div>

<div class="form-group">
<label for="phoneNumber">Phone number : </label>
<input type="text" v-model="newContact.PHONENUMBER" class="form-control" id="phoneNumber">
</div>

<div class="form-group">
<button class="btn btn-primary btn-sm" type="submit" v-if="!edit">Add new Contact</button>
<button class="btn btn-primary btn-sm" type="submit" v-if="edit" @click="editContact(newContact.ID)">Edit Contact</button>
</div>

</form>

Замечания :
Мой файл маршрута с использованием ресурса или ручного маршрута всегда один и тот же

Route::resource('/api/contact/', 'PhonebookController');

или же

patch('/api/contact/{id}', ['uses' => 'PhoneboookController@update']);

И тут что-то странное.
Детальный запрос

(Может быть, я не прав), нет проблем или ошибок, если мы посмотрим на детали. Но если мы перейдем на вкладку ответа, результат будет пустым
Нет ответа!

После всего этого процесса ничего не происходит с данными.

CONTACTNAME должен быть «Mizukiaaaaaaaa», как первый скриншот, а не «Mizuki»введите описание изображения здесь

Я что-то пропустил??
Любой совет?

Спасибо

2

Решение

Как я и предлагал вам, попробуйте инвертировать параметры в вашем update метод в вашем контроллере.
И чтобы получить ответ, вы должны отправить его обратно (с кодами 200, 400, 401, что хотите).

public function update($id, Request $request)
{
$phonebook = Phonebook::findOrFail($id);
$phonebook->update($request->all());

// your treatment

return Response::json([
'param' => 'value'
], 200);

}

Если вы хотите отладить и увидеть его в своем ответе, вы можете сделать dd('debug')в вашем методе вы увидите это в ответе на запрос Ajax.

Это должно работать для вас!

0

Другие решения

Пролистав и спросив столько людей об этом, наконец-то нашел! Там нет ничего плохого в запросе или ответе. Мои ошибки — обновление мутатора, которое я использовал, и моя модель.

Обновленный ответ

Причина ответила Вот а потом я просто изменил функцию обновления на контроллере. Здесь результат

public function update(Phonebook $phonebook, Request $request, $id)
{
// You can add any fields that you won't updated, usually primary key
$input = $request->except(['ID']);

// Update query
$saveToDatabase = $phonebook->where('ID', '=', $id)->update($input);
return $saveToDatabase;
}

Мой предыдущий ответ обновил все поля, включая первичный ключ, каким-то образом он успешно обновил данные, но оставил ошибку наверняка (дублированный первичный ключ). Запрос выглядит так UPDATE SET field = 'value' без условий.

Этот случай относится к модели, которая не имеет никакого отношения к другим моделям (таблицам) или модель выступает в роли мастера.

0

По вопросам рекламы [email protected]