首页 > 解决方案 > 如果搜索为空,则在另一个相关表上记录用户信息

问题描述

我有两张表 Visitor 和 visitor_date

在访问者上,我有一些信息,如姓名、电子邮件和 created_at 来记录用户创建时间和访问者数据,其中包含 3 个字段 id、visitor_date(设置为记录 CURRENT_TIMESTAMP)和 visitor_id,该字段是访问者的 FK桌子。

我想要实现的是记录有人访问我们拥有的任何构建以及他们访问的日期。如果我搞砸了逻辑,请告诉我,这样我就可以修复它并让它变得不同。

我到现在为止就是这个。

带有搜索字段的控制器,它将帮助我处理刀片文件。这是控制器的一部分。

if (isset($_GET['search'])) {
    $search = $request->search;
    $visitors = Visitor::where('email', 'LIKE', "%{$search}%")
        // ->orWhere('name', 'LIKE', "%{$search}%")
        ->get();
    return view('visitors.visitor_add', compact('visitors'));
} else {
    return view('visitors.visitor_add');
}

在刀片上我有这个

处理搜索的表单,如果找不到电子邮件或姓名,页面会询问我们是否要添加它,如果找到记录,我想记录访问。

@if ($visitors->isEmpty())
    <div>
        <h2>No visitors found</h2>
        <p>Add it?</p>
    </div>
@else
    @foreach ($visitors as $visitor)
        <div class="visit-list">
            <p>{{ $visitor->email }} - Record visit?</p>
        </div>
    @endforeach
@endif

如何使用之前找到的 ID 记录访问?

标签: laravel

解决方案


您可以使用 forelse 而不是 is empty

@forelse ($visitors as $visitor)
<div class="visit-list">
    <p>{{ $visitor->email }}</p>
</div>
@empty
<div>
   <span>Data Not Found</span>
</div>
@endforelse

推荐阅读