我正在使用Laravel 4为我的AngularJS应用程序创建一个RESTful界面。
目前,我想更新一个对象。我的模型被称为Discount Link
我这样做的方式是:
$data = Input::all();
$affectedRows = DiscountLink::where('id', '=', $id)->update($data);
(请想象有一些验证检查)
我在laravel.log
:
General error: 1 no such column: $edit
编辑是传递给我的服务器的值,因为它是通过angular添加的。我没有看到需要在我的JS中明确删除它,所以我的问题是:
如何创建我的模型会注意的某种键名白名单。这样,即使偶然传递了一些东西,REST调用也不必失败。
我想在JS中存在消毒的参数,但是我会用许多可能变得混乱的去赋值语句来污染我的代码,特别是在处理AngularJS时:
delete discountLink.$edit;
有什么建议吗?
答案 0 :(得分:1)
$data = Input::all();
$discountLink = DiscountLink::find($id);
$discountLink->fill($data);
$discountLink->save();
此方法正常运行。但是您的可填写/保护属性必须设置正确。
更新:
新方法:
$data = Input::all();
$data['id'] = $id;
$genre = new Genre;
$genre->exists = true;
$genre->update($data);
据我所知,这是1个查询。