
我在特定控制器的路由上使用了内置的resource方法来生成标准的CRUD路由,但我不知道如何更新资源。我正在尝试创建一个应用程序接口,所以我使用的是App\Http\Resources,而不仅仅是模型。下面是我的控制器中试图更新的代码,但它不起作用:
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路由文件
Route::resource('samples', 'SampleController');发布于 2018-08-29 11:52:50
在postman中的标头中,我使用x-www-form-urlencoded:
Key Value Description
Accept application/json
Content-Type application/x-www-form-urlencoded在postman中,尝试使用x-www-form-urlencoded:
key value
name update
content new content发布于 2018-08-28 13:47:22
您需要在模型中将列定义为可填充,以便以后可以更新它们。您所需要做的就是在Sample Model中添加以下代码行。
protected $fillable = [ 'name', 'content'];如果这仍然不起作用,请随时询问。
发布于 2018-08-28 13:09:06
你可以这样写。希望这能解决你的问题,
public function update(Request $request, Sample $sample)
{
$sample = $sample->update($request->all());
}https://stackoverflow.com/questions/52050377
复制相似问题