laravel angularjs更新多行

时间:2014-12-29 08:40:59

标签: angularjs laravel

我有一个可排序的表,在成功移动项目后,我想更新数据库中的所有行,这些行都是通过排序实现的。

我的问题是我不知道用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');

1 个答案:

答案 0 :(得分:-1)

尝试发帖代替。 var promise = $ http.post(&#34; / api / album / category / fakeid&#34;,update);

PUT vs POST in REST

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并获得回调响应。