Php 拉威尔·克鲁德编辑创造了一项新记录
我的Laravel crud注册申请有问题。 有以下表格:注册,外部注册(带有注册id、额外id和外部选项id), 额外和额外选项(带有额外id) 在RegistrationController中,当我添加注册时,它会在ExtraRegistration中创建一条新记录,其中包含extraoptions_id和extra_id。extra_id是选项的名称,extraoptions_id是所选选项的id 但现在,当您单击“编辑记录”时,它会显示所有信息。问题是,当您更改extraoption时,它会生成另一条记录,而不会更改select。 当您编辑了某个内容并再次查看它时,它仍然会在您编辑它之前显示该选项 注册控制器Php 拉威尔·克鲁德编辑创造了一项新记录,php,laravel,Php,Laravel,我的Laravel crud注册申请有问题。 有以下表格:注册,外部注册(带有注册id、额外id和外部选项id), 额外和额外选项(带有额外id) 在RegistrationController中,当我添加注册时,它会在ExtraRegistration中创建一条新记录,其中包含extraoptions_id和extra_id。extra_id是选项的名称,extraoptions_id是所选选项的id 但现在,当您单击“编辑记录”时,它会显示所有信息。问题是,当您更改extraoption时,
$options = Extra::where("exa_form_id", $distance->asd_form_id)->get();
foreach($options as $option){
$input_name = "option_" . $option->exa_id;
$input_option = $request->$input_name;
if(!is_null($input_option)){
$input_name_extra = "extraoptions_" . $option->exa_id;
$input_option_extra = $request->$input_name_extra;
$registrationextra = new ExtraRegistration();
$registrationextra->iea_registration_id = $registration->isg_id;
$registrationextra->iea_extra_id = $input_option;
$registrationextra->iea_extraoption_id = $input_option_extra;
$registrationextra->iea_price = $option->exa_price;
$registrationextra->save();
}
}
$registration->isg_options = $input_option;
$registration->isg_option_extra_id = $input_option_extra;
在进行新的额外注册之前,我要一张支票。仅当具有该额外id的注册id不存在时,才会进行新注册。(但不是100%确定)
提前谢谢 您创建了一个外部注册的新对象,因此它总是为更新创建一个新条目,更新后第一个获取这些id的对象
检查下面的链接
发生这种情况是因为您正在创建一个新的
外部注册
记录:
$registrationextra = new ExtraRegistration();
如果要更新它,您需要为您的$options
找到相关的$registrationextra
,然后更新它们(假设已设置关系):
如果要检查是否存在ExtraRegistration,并根据此情况创建或更新它,可以执行以下操作:
$registrationextra = App\ExtraRegistration::updateOrCreate(
['your_fields' => 'value'],
);
您可以在官方网站上阅读更多信息。所以我不能用if-else来检查?因为它必须是一张支票,你可以,你不必这样做。你能给我举一个例子,用if-else吗?重复-请不要多次发布同一个问题
$registrationextra = App\ExtraRegistration::updateOrCreate(
['your_fields' => 'value'],
);