Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔·克鲁德编辑创造了一项新记录_Php_Laravel - Fatal编程技术网

Php 拉威尔·克鲁德编辑创造了一项新记录

Php 拉威尔·克鲁德编辑创造了一项新记录,php,laravel,Php,Laravel,我的Laravel crud注册申请有问题。 有以下表格:注册,外部注册(带有注册id、额外id和外部选项id), 额外和额外选项(带有额外id) 在RegistrationController中,当我添加注册时,它会在ExtraRegistration中创建一条新记录,其中包含extraoptions_id和extra_id。extra_id是选项的名称,extraoptions_id是所选选项的id 但现在,当您单击“编辑记录”时,它会显示所有信息。问题是,当您更改extraoption时,

我的Laravel crud注册申请有问题。 有以下表格:注册外部注册(带有注册id、额外id和外部选项id), 额外额外选项(带有额外id)

在RegistrationController中,当我添加注册时,它会在ExtraRegistration中创建一条新记录,其中包含extraoptions_id和extra_id。extra_id是选项的名称,extraoptions_id是所选选项的id

但现在,当您单击“编辑记录”时,它会显示所有信息。问题是,当您更改extraoption时,它会生成另一条记录,而不会更改select。 当您编辑了某个内容并再次查看它时,它仍然会在您编辑它之前显示该选项

注册控制器

$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'],
);