为什么在选中单选按钮之前查看渲染“1”

Why view render "1" before checked radio button

我用数据库中的值检查单选按钮,它可以工作,但它在选中的单选按钮之前呈现“1”。如果我删除 if 语句,它就不会显示。

<?php $formUserType = UserType::all(); ?>

@foreach($formUserType as $valUT)
  {{ $varSetRadio = false }}

  @if($user->profile->dic_user_type_id == $valUT->id)
    {{ $varSetRadio = true }}
  @endif

  {!! Form::radio('profile[dic_user_type_id]', $valUT->id, $varSetRadio) !!} {{ $valUT->name }}
  <br />
@endforeach

{{ expr }} 转换为 <?php echo e(expr) ?>.

赋值的输出是php中最右边的值,所以($var = 1)等于1(另外true也等于1,因为PHP是真值)

执行以下操作:

@foreach($formUserType as $value)
    {!! Form::radio('profile[dic_user_type_id]', $value->id, $user->profile->dic_user_type_id === $value->id) !!}
    {{ $value->name }}
  <br />
@endforeach

此外,除了视图中的简单逻辑外,您不应该比较任何东西。

尝试将 dic_user_type 的比较添加到 User 模型本身,并将您的数据传入而不是从 controller/model 外部获取。