Php 当管理员在我的视图中批准时,我应该如何显示数据
我对laravel不熟悉,我正在创建批准/拒绝的候选人。现在我正在申请批准。我有“general.blade.php”,其中显示了所有待处理列表。然后,当管理员批准所选的候选人时,它会将数据传递给我称为“Approved.blade.php”的新刀片服务器。然而,就我而言。当我点击一个候选者时,它会将所有候选者列表传递给新刀片,无论是挂起还是批准 CandidateController.phpPhp 当管理员在我的视图中批准时,我应该如何显示数据,php,laravel,Php,Laravel,我对laravel不熟悉,我正在创建批准/拒绝的候选人。现在我正在申请批准。我有“general.blade.php”,其中显示了所有待处理列表。然后,当管理员批准所选的候选人时,它会将数据传递给我称为“Approved.blade.php”的新刀片服务器。然而,就我而言。当我点击一个候选者时,它会将所有候选者列表传递给新刀片,无论是挂起还是批准 CandidateController.php public function postApprove($id) { $candidates
public function postApprove($id)
{
$candidates = GeneralForm::where('id', '=', e($id))->first();
if($candidates)
{
$candidates->status = 1;
$candidates->save();
$candidates=GeneralForm::where('status' , '1')->get();
$menu = Menu::get();
$current_menu = 2;
$candidates = GeneralForm::latest()->paginate(5);
return view('approve', compact('candidates', 'menu', 'current_menu'));}
<tbody>@foreach ($candidates as $candidate)
<tr class="intro-x">
<td class="w-40">
<div class="font-medium whitespace-no-wrap">{{ $candidate->fullname }}</div>
</td>
<td class="w-40">
<div class="font-medium whitespace-no-wrap">{{ $candidate->email }}</div>
</td> </tbody>@endforeach
general.blade.php
*这是我的按钮,管理员可以批准候选人*
<a class="flex items-center " href="{{route('application',['id'=>$candidate->id])}}"> <i data-feather="user-check" class="w-4 h-4 mr-1"></i> Accept </a>
我得到的是,每当我单击一个候选人时,它都会将我重定向到approval.blade.php。然而,它向我展示了整个列表,包括待定的。我希望它只显示批准的候选人。我的数据库数据工作正常,只是我的视图不正常。有人能告诉我哪个部分错了吗?您使用
$candidates=GeneralForm::latest()->paginate(5)得到5个候选项代码>并将该数据传递给视图。由于您只需要一名候选人,因此应按如下方式更新代码:
public function postApprove($id)
{
$candidate = GeneralForm::find($id);
$candidate->status = 1;
$candidate->save();
$menu = Menu::get();
$current_menu = 2;
return view('approve', compact('candidate', 'menu', 'current_menu'));
}
GeneralForm::where('id','=',e($id))->first()代码>可以缩短为通用格式::查找($id)
- 删除了行
$candidates=GeneralForm::where('status','1')->get()因为这会得到一个候选列表,它会被$candidates=GeneralForm::latest()->paginate(5)覆盖代码>无论如何
- 将
$candidates
重命名为$candidate
,以反映只有一项
然后在您看来,您可以去掉@foreach…
,因为我们只有一个项目要显示:
<tbody>
<tr class="intro-x">
<td class="w-40">
<div class="font-medium whitespace-no-wrap">{{ $candidate->fullname }}</div>
</td>
<td class="w-40">
<div class="font-medium whitespace-no-wrap">{{ $candidate->email }}</div>
</td>
</tr>
</tbody>
{{$candidate->fullname}
{{$candidate->email}
- 删除了
@foreach
,因为我们只有一个项目要显示
刚刚意识到显示的代码已经是用于显示一个候选者的代码<代码>一般形式::其中('id','=',e($id))->first()代码>可以缩短为通用格式::查找($id)
。如果您只需要一名候选人,我还建议使用$candidate
而不是复数$candidates
<代码>$candidates=GeneralForm::latest()->paginate(5)
将为您提供5件物品,不确定为什么会有,因为您只需要一件。非常感谢!!是$candidates=GeneralForm::latest()->paginate(5);是那个误会我的人吗@brombeery不客气,很高兴它能起作用。我还有一个问题我刚才忽略了。当管理员单击approve按钮时,它将显示approve.blade.php和一个候选者(这是正确的)。但是,当我试图点击我的侧导航时,我的approve.blade.php再次显示了所有的候选者。我的菜单数据库有问题吗?我不知道你的侧边栏包含什么以及为什么失败,需要更多的信息。你的侧边栏里也有候选人名单吗?我知道了,这和我的控制器有关。我忘了更改显示已批准的数据库代码。我的错,对不起!没问题;)
<tbody>
<tr class="intro-x">
<td class="w-40">
<div class="font-medium whitespace-no-wrap">{{ $candidate->fullname }}</div>
</td>
<td class="w-40">
<div class="font-medium whitespace-no-wrap">{{ $candidate->email }}</div>
</td>
</tr>
</tbody>