Laravel更新语法 - 使用数组更新记录

jam*_*s0n 14 post laravel laravel-routing

我在Laravel中通过POST进行基本记录更新时遇到了麻烦.

我已经捕获了数组中的所有发布数据,如果现有的Order#为0,那么我创建一个新记录(工作正常).否则我更新现有记录.

Order.php

class Order extends Eloquent {
    public static $table = 'my_orders';
}
Run Code Online (Sandbox Code Playgroud)

routes.php文件

//Handle a new order POST
Route::post('order', array('do' => function() {
    $thisOrder = array(
         'qty' => Input::get('quantity'),
         'desc' => Input::get('description'),
    );

    $thisOrderID = Input::get('orderNo');

    //CHECK FOR NEW OR EXISTING ORDER
    if($thisOrderID > 0) {
        //THIS FUNCTION SOMEHOW RETURNS THE FUNCTION CALL AND DOESNT CONTINUE PAST
        //AND THE RECORD IS NOT UPDATED
        $updateOrder = Order::update($thisOrderID, $thisOrder);
    }
}
Run Code Online (Sandbox Code Playgroud)

更新:上面的代码实际上工作.我有一个验证错误,导致函数提前返回.

小智 21

而不是这一行:

$updateOrder = Order::update($thisOrderID, $thisOrder);
Run Code Online (Sandbox Code Playgroud)

你需要这样做:

$updateOrder = Order::find($thisOrderID)->update($thisOrder);
Run Code Online (Sandbox Code Playgroud)

使用find()(等于where_id()),您可以从数据库中选择一个特定的行,并通过更新传递新数据.