我有一个项目模型,它拥有项目翻译,我收到一个请求,包含我正在更新的项目和该项目的翻译。
现在,其中一些翻译已经存在于数据库中(它们拥有自己的id),而另一些则是新的。有没有一种简洁的方法来处理这个问题?
伪代码如下:对于找到的每个翻译,请更新它的关联(如果存在),否则为此项目创建一条新记录。
以下是我的项目布局。
现在,其中一些翻译已经存在于数据库中(它们拥有自己的id),而另一些则是新的。有没有一种简洁的方法来处理这个问题?
伪代码如下:对于找到的每个翻译,请更新它的关联(如果存在),否则为此项目创建一条新记录。
以下是我的项目布局。
class Item extends Model
{
protected $fillable = ['menu_id', 'parent_id', 'title', 'order', 'resource_link', 'html_class', 'is_blank'];
public function translations()
{
return $this->hasMany(MenuItemTranslation::class, 'menu_item_id');
}
}
这是ItemTranslation(项目翻译)
class ItemTranslation extends Model
{
protected $table = 'item_translations';
protected $fillable = ['menu_item_id', 'locale', 'name', 'order', 'description', 'link', 'is_online'];
}
createMany
方法(https://laravel.com/docs/5.7/eloquent-relationships#the-create-method),但似乎没有类似于updateOrCreateMany
的方法。 - D Malan