当前位置: 首页 > 知识库问答 >
问题:

无法使用laravel雄辩ORM插入PostgreSQL

桑鸿志
2023-03-14

在发布这篇文章之前,我做了很多研究。

我得到以下错误时,试图插入一个记录到PostgreSQL使用Laravel雄辩的ORM。

这是错误:

Illuminate \ Database \ QueryException

SQLSTATE[42703]: Undefined column: 
7 ERROR: column "id" does not exist LINE 1: ...ed_at", "created_at") 
values ($1, $2, $3, $4) 
returning "id" ^ (SQL: insert into "fb_post_like_counts" ("post_id", "count", "updated_at", "created_at") values (293843523498_10152007721598499, 0, 2014-03-12 16:56:24, 2014-03-12 16:56:24) returning "id")

这是数据库表创建模式:

Schema::create('fb_post_shares_counts', function($table)
{
    //
    $table->string('post_id');
    $table->string('count')->default(0);

    //  created_at updated_at deleted_at
    $table->timestamps();
    $table->softDeletes();

    // set composite keys   
    $table->primary(array('post_id', 'updated_at'));
});

这就是我试图执行的代码:

// SAVE POST SHARES
$post_share_count   =   new FbPostShareCount;
$post_share_count->post_id   =  $response['id'];
$post_share_count->count    =   $fql_post['share_count'];       
$post_share_count->save();

我创建了一个模型类FbPostShareCount扩展雄辩。

我知道laravel不支持复杂的键,但当我使用MySQL时,这个问题并没有发生

共有3个答案

双弘益
2023-03-14

您是否尝试过使用正确的数据类型作为post id?

$table->integer('post_id');
陆运乾
2023-03-14

Laravel雄辩的ORM具有自动递增功能,因此设置primaryKey=null和increment=false。

protected $primaryKey = null;

public $incrementing = false;
梁俊友
2023-03-14

FbPostShareCount模型中的主键设置为

class FbPostShareCount extends Eloquent {

    protected $primaryKey = 'post_id';

    ...
}
 类似资料:
  • 在有说服力的ORM上,是否有一种较短的方法在Laravel中插入数据? 目前我正在这样做: 就像你看到的,所有的列都像属性一样命名。 我知道您可以将对象与all()函数和fetch()一起使用。但是我从另一个对象(soap服务器)获取数据。 有没有办法转换这个?也许在模型上?

  • 如何使用laravel雄辩的ORM关系在多个表中发出一个插入请求。即 表1:用户 id 姓名 电子邮件 表2:员额 id 表3:图像 id 用户id 邮政id 图像名称 关系 表id引用了其他两个表中的 表与

  • 如何使用雄辩的ORM在Laravel中执行批量数据库插入? 我想在拉威尔完成这一点:https://stackoverflow.com/a/10615821/600516 但是我得到了以下错误。 SQLSTATE[HY093]:无效参数编号:混合命名参数和位置参数。

  • 问题内容: 我们如何使用雄辩的ORM在Laravel中执行批量数据库插入? 问题答案: 您可以使用。 例如:

  • 嗨,我正在学习laravel。我使用雄辩的ORM删除方法,但我得到了不同的结果。不是真的或假的,而是空的。我设置了一个资源路由,在UsersController中有一个销毁方法。 但是我总是得到一个响应{“status”:“0”,“msg”:“failed”},数据库中的记录被删除。 然后我使用dd($res)。它在页面中显示null。 但是从课程中我学习到它返回一个布尔值true或false。

  • 我正在与Laravel 5.4合作。我正在使用雄辩的ORM。我已经创建了以国家和州为单位的表格。二者的描述如下: 国家表: 国家表: 现在,我编写了两个方法来设置状态和国家表之间的关系。 国家型号: 状态模型: 现在,我将创建编辑功能,以便无法获取国家名称。 我已将查询写成 在这里,我得到的只有州数据和国家数据为空。 那么,为了获得州和国家数据,我应该做些什么改变呢?