我在Laravel5.3中遇到了一个问题,我查看了文档,也搜索了web,但没有找到任何内容。
我使用Laravel关系连接两个表。现在,我希望在用户提交表单后,同时在两个表上插入数据。这里的问题是第一个表是主要的一个说“用户”,第二个说“xyz”属于第一个表。表"xyz"包含连接两个表的"users_id"列。而显然“users_id”是“用户”表的“id”列。
现在问题来了,我想插入数据在用户表(这很容易做到)和xyz表在同一时间。用户::create()函数将很容易地创建用户数据,它也在工作,但在xyz表中插入数据时,我将需要user_id列数据和ID,直到用户在ID列已激活自动增量属性时创建。
代码:
$user = new User;
$inputArry = array('data1' => $request['field1'],
'data2' => $request['field2'],
'data3' => $request['field3'],
);
$user->create($inputArry);
$user->xyz()->create([
'user_id' => $user->id,
'name' => $request['name'],
'about' => $request['desc'],
'tag' => $request['tag'],
]);
上面是我为此目的使用的代码,但它给我一个错误。
错误:
QueryException in Connection.html" target="_blank">php line 761:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'soft_id' cannot be null (SQL: insert into `xyz` (`user_id`, `name`, `about`, `tag`, `updated_at`, `created_at`) values (, John, I am John, dev, 2016-11-09 21:01:29, 2016-11-09 21:01:29))
您可以这样创建它们,而不是同时保存它们。。。
$id = User::create($input_arr)->id;
Xyz::create([
'user_id' => $id,
...
]);
如果需要插入许多项,请使用createMany或saveMany方法。
例如:
$post = App\Post::find(1);
$post->comments()->createMany([
[
'message' => 'A new comment.',
],
[
'message' => 'Another new comment.',
],
]);
在官方的laravel文件中:
https://laravel.com/docs/5.6/eloquent-relationships#inserting-and-updating-related-models
插入相关表的一种方法是将关系用作:
$user = User::create($user_inputs);
$xyz = $user->xyz()->create($xyz_inputs);
它将自动填充xyz
表中的user\u id
。
我有三张桌子: 每当我尝试添加时,我试图获得一个帖子,它会自动添加一个,其中包含,表以及,同时,一旦创建了,它还应该记录和,但我使用多对多关系和结束了这个错误。如何使用eloquent添加和? 这就是我迄今为止所尝试的。 控制器。php 使用者php UserACcount.php Verification.php 账户php 我尝试使用这个功能,完全可以正常工作,但我很确定这就是它如何与雄辩。
我是新来laravel的,所以原谅我可能的愚蠢问题。此外,我确实研究了所有其他“类似”的问题,但要么它们没有重现正确的解决方案,要么我真的很难理解。 情景: 我有一个帖子模型和一个主题模型。这就是他们现在的样子。 在岗位上。php 在主题上。php 现在,我需要实现的是: 如果将查询参数传递给请求(即q=Food),我只想返回在主题关系中包含主题食物的帖子,而不返回其他帖子。如果什么都没有通过,那
我在MySQL中有下表。 表1(身份证、名字、姓氏、电话号码) 表2(TID、电子邮件) 我在 Table1 中有 25000 行,而我的 Table2 包含 20000 行。我在表 2 中的 TID 是引用表 1 的主键 ID 的外键。如果姓氏为 NULL,则 Table2 中将不存在这些 ID。现在,我正在尝试仅针对具有姓氏的表合并这两个表。 我重新定义了表2的模式,如下所示。 Table2(
我有两个实体,它们之间有一对一的联系。这两个实体都具有复合自然主键。一个实体使用其自然组合键中的1个字段和一个额外列引用另一个实体。我在持久化这些实体方面有问题,Hibernate首先插入引用对象(根据我的理解,这是HallPlacesSchema),因此在插入引用对象之前,我立即得到约束违反错误(Hall)。 在单个会话中,我完全按照该顺序坚持霍尔,然后是霍尔广场化学时,问题就出现了。 当会话刷
救命啊!我只在一对多关系数据库中插入POJO时遇到问题。我有POJO和误解如何插入数据库中的所有列表??? 请帮帮我伙计们!
我创建了两个表: > 具有列 (主键、自动递增)、、、的表 表包含列(主键,自动增量),(的外键), 我有表格来创建具有现有角色的新员工。要插入的数据示例: 我想在SQL Server 2014中编写一个存储过程,将新的staff插入到<code>tblStaff。 那我该怎么办? 如果我的问题与其他问题重复,我很抱歉。我对SQL更感兴趣。谢谢你的帮助。