1

有两个表,Language并且Text具有一对多的关系,其中Text接收表的外键Language

我已经正确设置了模型和关系,并且模型的检索工作正常。

如何将Language实体与某些现有Text记录相关联。

我尝试获取一些Text记录并将它们插入到Language使用中

$language = Language::find(1);
$textRecords = TextRecord::where('id', 'IN', array(1,2,3,4,5,6,7))->get();
$language->texts()->insert($textRecords);

哪里texts()返回hasMany('Text')

laravel 返回的错误是..

Unknown column '0' in 'field list' (SQL: insert into `ayah_text` (`0`, `1`....

我不确定为什么Laravel要尝试使用块引号 ` 而不是 ' 作为值..

另外,它似乎是在插入新记录而不是更新现有的..

4

3 回答 3

2

尝试$language->texts()->associate($textRecords);

于 2013-11-11T16:14:51.443 回答
0

在 Laravel 4 中使用 whereIn 方法

$textRecords = TextRecord::whereIn('id', array(1,2,3,4,5,6,7))->get();
于 2014-03-09T11:06:25.013 回答
0

儿童.php

public function parent() {
    return $this->belongsTo(Parent::class);
}

父.php

public function children() {
    return $this->hasMany(Child::class);
}

更新外键:

// updates $child->parent_id
$parent = Parent::find($your_id);
$child->parent()->associate($parent);
$child->save();

更多信息:https ://meigwilym.com/family-fortunes-saving-and-updating-laravel-relations/

于 2021-09-27T10:59:57.933 回答