I'm having trouble doing a basic record update via POST in Laravel.

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

Order.php

class Order extends Eloquent {
    public static $table = 'my_orders';
}

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);
    }
}

Update: The code above does in fact work. I had a validation error, which was causing the function to return early.

推荐答案

代替此行:

$updateOrder = Order::update($thisOrderID, $thisOrder);

You need to do:

$updateOrder = Order::find($thisOrderID)->update($thisOrder);

With find() (which equals where_id()) you select a specific row from the database and with update you pass the new data.

Laravel相关问答推荐

Hostinger Laravel网站未显示错误

未将Laravel Blade属性传递给组件或类

Laravel:在行的子集上同步多对多

前端和管理员分开时未加载laravel 9中间件

使用Laravel Blade Formatter和PHP Intelephense进行 VSCode 格式化

如何在 Laravel 中填充以后执行的条件

如何在 laravel 5.3 中验证没有 auth:api 中间件的用户?

Laravel 4:读取由 javascript 设置的 cookie

用 laravel 表单确认删除?

Laravel Blade 没有额外的空格?

laravel 预期响应代码 250 但得到代码530

错误:您的要求无法解析为一组可安装的软件包.

计算laravel中查询返回的行数

在 Laravel 4 迁移中创建 MYSQL 过程

Laravel Eloquent 在子查询中有两个WHERE NOT IN

安装后在 Lumen 中找不到页面

Laravel 搜索关系

Laravel 5 - 判断日期是否是今天

在 Laravel 5.4 中将文件存储在公共目录和存储中的区别

Eloquent - 带有字符串值而不是列标题的连接子句