如何显示每种故障单类型的自定义字段?

时间:2018-04-10 16:27:39

标签: php laravel

我有一个single.blade.php文件,显示会议详细信息并且还有一个表单,以便用户可以为每种票证类型选择他想要的票证数量。

当用户选择数量并单击下一步时,请求将转到具有storeQuantity()方法的RegistrationController以存储所选数量  由用户在$ selectedTypes数组中,并使用$ selectedTypes数组将用户重定向到registration.blade.php:

class RegistrationController extends Controller
{
     public function storeQuantityandRedirect(Request $request, $id){

            $typeQuantities = $request->get('types');

            foreach($typeQuantities as $typeName => $quantity){
                $type = TicketType::where('name', $typeName)->firstOrFail();
                $price = $type->price;
                $selectedTypes[$type->name]['quantity'] = $quantity;
                $selectedTypes[$type->name]['price'] = $price;

            }
            return view('congresses.registration')->with('selectedTypes', $selectedTypes);
        }
}

现在在registration.blade.php文件中,用户需要填写注册表。

如果用户选择了,例如,在注册页面的上一页中有2个票据应该出现两个部分供用户介绍 每种故障单类型的名称和电子邮件。使用以下代码可以正常工作:

@foreach($selectedRtypes as $k=>$selectedRtype)
    <h6>Participant - 1 - Ticket Type - {{$k}}</h6> <!-- The variable {{$k}} shows the name of each ticket type (ex: full access, basic, etc). -->
    <div class="form-group font-size-sm">
        <label for="name" class="text-gray">Name</label>
        <input type="text" class="form-control" id="name" value="">
    </div>
    <div class="form-group font-size-sm">
        <label for="surname" class="text-gray">Surname</label>
        <input type="text" class="form-control" name="surname" id="surname" value="">
    </div>
@endforeach

的疑问:

每种故障单类型都可以有自定义问题。

我的疑问是如何显示除名称和姓氏字段外还显示每种特定故障单类型的自定义字段。  例如,会议组织者可能已经为票证类型&#34;完全访问&#34;自定义问题&#34;您的电子邮件是什么?&#34;。所以在foreach  当票证类型是&#34;完全访问&#34;它应该出现,除了名称和姓氏,字段&#34;你的电子邮件是什么?&#34;。

你知道怎么做吗?

我有这个表格内容和关系:

questions table:
id      question                congress_id
1       whats your email             1

ticket_type_questions table:
id        ticket_type_id      question_id
1            1                     1      (the ticket type 1 has the question 1)

ticket types table
id             name        congress_id
1             full access        1
2             basic               1

1 个答案:

答案 0 :(得分:1)

由于您将问题存储在数据库表中,因此可以从控制器将它们传递给视图。在您的控制器中,您可以添加以下内容:

$customQuestions = Question::where('congress_id', $cong_id); 

然后修改你的回报看起来像这样。

return response()->view('congress.registration', ['selectedTypes' => $selectedTypes, 'customQuestions' => $customQuestions], 200);

然后,在您的视图上,在@endforeach之前,您可以添加条件以检查是否存在任何自定义问题。

// put this right before your @endforeach
@if(count($custQuestions) > 0)
// loop and display custom question fields.
@endif

希望这会有所帮助。