根据值在Symfony中设置多个实体

时间:2020-07-27 21:17:59

标签: php symfony foreach doctrine-orm

我正在尝试根据值是否存在设置多个实体。

if ($guestMinorCheckout === 'Yes') {
    $optionInfo = 'adult-authorized';
    $value = 'yes|';
    foreach ($guestMinorCheckout as $guestInfo) {
        if (!is_null($guestContactCheckInOutPhone)) {
            $option = new EventAttendeeOption();
            $option->setOption('adult-authorized-sms');
            $option->setValue($guestContactCheckInOutPhone);

        }
        if (!is_null($guestContactCheckInOutEmail)) {
            $option = new EventAttendeeOption();
            $option->setOption('adult-authorized-email');
            $option->setValue($guestContactCheckInOutEmail);
        }
    }
}

上面的这段代码不起作用,但是它是我想要完成的。

我正在从API调用中获取此数据,因此这些值可能存在也可能不存在。如果它们确实退出,则id希望设置为这些值。

1 个答案:

答案 0 :(得分:0)

不确定$guestContactCheckInOutPhone$guestContactCheckInOutPhone的确切来源。我假设它们位于您说从API获取的某些数据数组中。希望它是一个键,键数组的值与字段名相同。如果是这样,您可以使用反射类来代替检查每个字段是否在数组中:

$option = new EventAttendeeOption();
$reflectionClass = new \ReflectionClass(EventAttendeeOption::class);

foreach ($data as $key => $value) {
    $reflectionClass->getProperty($key)->setValue($option, $value);
}

编辑: 仔细检查后,我发现除了一些较小的工作流问题外,您的代码也应该可以工作,而我的答案并非您所需要的。你能分享为什么它不起作用吗?