我有一个可排序的表,在成功移动项目后,我想更新数据库中的所有行,这些行都是通过排序实现的。
我的问题是我不知道用eloquent更新数据库中多行的最佳方法是什么,以及如何使用angularjs正确发送数据
在angularjs中我做了这个
//creating the array which i want to send to the server
var update = [];
for (min; min <= max; min++){
...
var item = {"id": id, "position": position};
update.push(item);
...
}
//it doesn't work because its now a string ...
var promise = $http.put("/api/album/category/"+update);
//yeah i can read update in my controller in laraval, but i need the fakeid, because without
//i get an error back from laravel...
var promise = $http.put("/api/album/category/fakeid", update);
在laravel我有这个,但有可能用一个调用更新表而不是循环
//my route
Route::resource('/api/album/category','CategoryController');
//controller
class CategoryController extends BaseController {
public function update()
{
$updates = Input::all();
for($i = 0; $i<count($updates); $i++){
Category::where('id','=', $updates[$i]["id"])
->update(array('position' => $updates[$i]["position"]));
}
}
}
,是的,这有效,但我认为有更好的方法来解决我的控制器中的fakeid和循环的put请求;)
更新 k路由已解决;)我刚刚添加了一条额外的路由
//angularjs
var promise = $http.put("/api/album/category/positionUpdate", update);
//laravel
Route::put('/api/album/category/positionUpdate','CategoryController@positionUpdate');
答案 0 :(得分:-1)
尝试发帖代替。 var promise = $ http.post(&#34; / api / album / category / fakeid&#34;,update);
PUT意味着放置一个资源 - 用不同的东西完全替换给定URL上的任何可用资源。根据定义,PUT是幂等的。你可以多次这样做,结果是一样的。 x = 5是幂等的。您可以输入资源,无论它是否存在(例如,创建或更新)!
POST更新资源,添加辅助资源或导致更改。 POST不是幂等的,就像x ++不是幂等的一样。
通过这个论点,PUT用于在您知道要创建的事物的URL时创建。当你知道&#34;工厂&#34;的URL时,可以使用POST来创建。或者您想要创建的事物类别的经理。
这样:
POST /费用报告 或者:
PUT / expense-report / 10929
我通过以下方式了解到
Laravel + Angular + Bootstrap https://github.com/silverbux/laravel-angular-admin
Laravel + Angular + Material https://github.com/jadjoubran/laravel5-angular-material-starter
希望这有助于您了解如何利用bootstrap&amp;角度和使用启动器加快您的发展。您将能够理解如何将API请求传递给laravel并获得回调响应。