【发布时间】:2021-09-24 08:26:17
【问题描述】:
我的用户可以有多个参数。例如,它们被称为 user_param_1、user_param_2、...、user_param_n。这是动态的。它是一个单独的表 user_parameters,其中存储了 id、user_id、name 和 value。 Users 和 UserParameters 之间的关系是 belongsTo 和 hasMany。问题是:
编辑时,我想动态保持它,如果用户有一个 user_param_n+1,它应该被创建。但是我已经无法为现有参数编写条件了。
我自己创建了一个 userParameters 数组,它只包含来自 $request 变量的必要参数。数组如下所示:
[
0 => [
"name" => "par1"
"value" => "var1"
]
1 => [
"name" => "par2"
"value" => "var2"
]
2 => [
"name" => "par3"
"value" => "var3"
]
]
然后我想保存它。我的控制器知道用户,所以我可以访问 $user->id。
foreach ($userParameters as $userParameter) {
$user->parameters()->updateOrCreate(['id' => $user->parameters->id, 'user_id' => $user->id], $userParameter);
}
问题是,$user->parameters 是一组雄辩的模型。条件不对。我无法直接访问 id。但是我该如何解决呢?我需要像“['id' => [IF-DATABASE-ID-EXISTS-IN-ARRAY-$user-parameters]”这样的东西......但是如何以一种雄辩的方式?
提前致谢!
最好的问候
【问题讨论】:
标签: php laravel eloquent relationship has-many