首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新API资源Laravel?

如何更新API资源Laravel?
EN

Stack Overflow用户
提问于 2018-08-28 12:58:45
回答 4查看 7.3K关注 0票数 0

我在特定控制器的路由上使用了内置的resource方法来生成标准的CRUD路由,但我不知道如何更新资源。我正在尝试创建一个应用程序接口,所以我使用的是App\Http\Resources,而不仅仅是模型。下面是我的控制器中试图更新的代码,但它不起作用:

代码语言:javascript
复制
public function update(Request $request, Sample $sample)
{
    $sample = Sample::where('id', $request->id)->update($request->all());   
}

我正在使用postman检查我的路由,我正在尝试使用原始更新的JSON向app.dev/api/samples/1发送put请求,但是在将get请求发送到相同的url之后,我可以看到值没有改变。如何才能使此更新起作用?

编辑:这是我的api.php路由文件

代码语言:javascript
复制
Route::resource('samples', 'SampleController');
EN

回答 4

Stack Overflow用户

发布于 2018-08-29 11:52:50

在postman中的标头中,我使用x-www-form-urlencoded:

代码语言:javascript
复制
Key                  Value                            Description
Accept          application/json
Content-Type    application/x-www-form-urlencoded

在postman中,尝试使用x-www-form-urlencoded:

代码语言:javascript
复制
key         value
name        update
content     new content
票数 3
EN

Stack Overflow用户

发布于 2018-08-28 13:47:22

您需要在模型中将列定义为可填充,以便以后可以更新它们。您所需要做的就是在Sample Model中添加以下代码行。

代码语言:javascript
复制
protected $fillable = [ 'name', 'content'];

如果这仍然不起作用,请随时询问。

票数 1
EN

Stack Overflow用户

发布于 2018-08-28 13:09:06

你可以这样写。希望这能解决你的问题,

代码语言:javascript
复制
public function update(Request $request, Sample $sample)
{
    $sample = $sample->update($request->all());   
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52050377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档