使用Laravel Back End反应APP,无法插入数据

时间:2018-05-24 15:23:19

标签: php laravel reactjs eloquent insert

我正在学习使用Laravel Back End构建React JS WebApp。我试图插入数据时遇到问题,似乎我在控制器中的插入函数没有被调用我尝试的任何方法。这是代码;

JS:

fetch( '/api/links/', {
        method:'post',
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(link)
    })
        .then(response => {
            return response.json();
        })
        .then(data => {
            //update the state of links
        });

/routes/api.php:

Route::post('links', 'LinksController@store');

/app/Http/Controllers/LinksController.php:

public function store(Request $request)
{
    $link = new Link;
    $link->title = 'Hard Coded Just For Testing';
    $link->url = 'http://but.still/not-inserted-to-database/';
    $link->save();
    return response()->json(null, 200);
}

我的期望在我的链接表中应该有一条新记录,但没有新插入。

我错过了什么?请帮助。

更新: 事件虽然我将方法设置为在获取选项中发布,但事实证明,当我在开发人员工具中观察 - 网络选项卡时,它奇怪地改为GET方法,这就是为什么它永远不会调用我的存储函数来插入数据。有谁知道是什么原因引起的?

1 个答案:

答案 0 :(得分:0)

解决: 事实证明,由于在获取URL的末尾有额外的'/',而在routes / api.php中,URL在其末尾没有'/',这导致在原始调用/ api / links时重新路由/ POST通过GET重新路由到/ api / links。因此,只需从路径和获取中完美匹配URL,即可解决问题。