php - 无法查询 JSON (Laravel + VueJS)

标签 php json laravel-5 vue.js vue-resource

我的问题与这个完全相似cant't query json data in laravel 5.2

已经尝试从中实现正确的答案,但仍然没有运气。 我不知道为什么....

上一个,我找到了这个Laravel 5.2 Codeception functional test issue with PUT / PATCH requests同样,已经尝试使用他的建议,但也没有运气。

这是我的 Laravel Controller

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']);

然后,奇怪的事情发生了。 Detail request

(也许我错了)如果我们看细节,就没有问题或错误。但是,如果我们更改为响应选项卡,结果为空 No response!

在所有这些过程之后,数据没有任何变化。

CONTACTNAME 应该像第一个截图一样是“Mizukiaaaaaaaa”而不是“Mizuki” enter image description here

我是不是错过了什么?? 有什么建议吗?

谢谢

最佳答案

正如我向您建议的那样,尝试反转 Controller 中 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 请求响应中看到它。

这应该适合你!

关于php - 无法查询 JSON (Laravel + VueJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35536250/

相关文章:

javascript - 光滑的 slider 无法与 Bootstrap 一起使用

javascript - 无法在 sapui5 中对多个字段应用搜索

mysql - 需要 Laravel 查询帮助

javascript - 如何使用 jQuery 获取重复表单中的字段值?

javascript - 将 JSON 数据传递给 Java applet 的 javascript 函数示例

laravel - Laravel 5 中的 save() 和 create() 函数有什么不同

php - 如何选择外语的mysql查询?

javascript - 如何使用ajax正确将javascript变量插入mysql数据库

php - 从 <pre> </pre> 标签中移除 <br/>

javascript - 递归模板中的 Angular ng-Options