Laravel / Angular更新RESTfull

时间:2015-08-22 10:45:14

标签: php angularjs rest laravel

所以我想使用Angular更新Laravel中的记录。 这就是我所拥有的,但我担心这不是最好的做法吗?

基本上,我现在正在做的是: 1.我使用'show'函数从我的单个帖子获取数据(我想这是我已经错了,不应该在我的更新函数中处理)? 2.我用这些数据填写表格 3.我尝试使用'update'功能更新数据。 我不认为这是RESTfull?

Angular.js: 工厂展示和更新:

update : function(
            id,
            rideEdit
        )
        {
            //rideData.ridedate = $filter('date')(rideData.ridedate, "dd-MM-yyyy HH:mm:ss");
            console.log(rideEdit);
            return $http({
                method: 'PATCH',
                url: '/api/rides/' + id,
                headers: { 'Content-Type' : 'application/x-www-form-urlencoded' },
                data: $.param(rideEdit)
            });
        },
        show : function(
            id
        )
        {
            return $http.get('/api/rides/' + id);
        }

Angular.js:EditController(这是我填充表单的地方,按钮点击按钮,...)。

        $scope.rideEdit = {};
    var id = $stateParams.id;
    // Alles nemen van 1 record
    Ride.show(id)
        .success(function(data) {
            console.log(data);
            $scope.rideEdit.Dataname = data.name;
            $scope.rideEdit.Description = data.description;
            $scope.rideEdit.datetime = data.ridedatetime;
            $scope.rideEdit.persons = data.ridepersons;
            $scope.rideEdit.vertrekpunt = data.ridevertrekpunt;
            $scope.rideEdit.eindpunt = data.rideeindpunt;
        });

    $scope.updateRide = function() {
        console.log($scope.rideEdit);
        Ride.update(id, $scope.rideEdit)
            .success(function (data) {
                ToastFactory
                    .show('Rit aangepast!');
                $location.path('/home');
            })
            .error(function(error) {
                ToastFactory
                    .show(error);
            });
    };

Laravel: Ridescontroller:

 public function index()
{
    $results = Ride::with('user')->get();
    return $results;
}

/**
 * Store a newly created resource in storage.
 *
 * @param  StoreRideRequest  $request
 * @return Response
 */
public function store(StoreRideRequest $request)
{
    $ride = new Ride($request->all());
    Auth::user()->rides()->save($ride);
}

/**
 * Display the specified resource.
 *
 * @param  int  $id
 * @return Response
 */
public function show($id)
{
    //$results = Ride::find($id)->with('user')->get();
    $result = Ride::find($id);
    return $result;
}

/**
 * Show the form for editing the specified resource.
 *
 * @param  int  $id
 * @return Response
 */
public function edit($id)
{
    //
}

/**
 * Update the specified resource in storage.
 *
 * @param  Request  $request
 * @param  int  $id
 * @return Response
 */
public function update(Request $request, $id)
{
    $updateride = Ride::findOrFail($id);
    $updateride->update($request->all());
}

一切正常(除了更新)。所以我有两个问题: 1. RESTfull的方法是否正常? 2.如果是,我的更新功能出了什么问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

回答我问题的第2部分:

我的命名公约并不正确。我随更新发送的字段名称与数据库中的名称相同。相应地更改它们解决了更新问题。