php - 当管理员在我的视图中批准时,我应该如何显示数据
问题描述
我是 laravel 的新手,我正在创建候选人批准/拒绝。现在我正在争取批准。我有“general.blade.php”,其中显示了所有待处理的列表。然后当管理员批准选定的候选人时,它会将数据传递给我称为“Approved.blade.php”的新刀片。但是,就我而言。当我单击一个候选人时,它会将所有候选人列表传递给新刀片,无论是待定还是批准。
候选控制器.php
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'));}
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>
我应该在这里只显示批准候选人 approve.blade.php
<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
路线
Route::get('application/approve/{id}', 'CandidateController@postApprove')->name('application');
我得到的是,每当我点击一个候选人时,它都会将我重定向到approval.blade.php。但是它向我显示了包括待处理的整个列表。我希望它只显示批准候选人。我的数据库数据工作正常,只有我的观点不是。有人可以帮我哪一部分是错的吗?
解决方案
您将有 5 名候选人使用$candidates = GeneralForm::latest()->paginate(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();
可以缩短为GeneralForm::find($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>
- 删除了,
@foreach
因为我们只有一项要显示
推荐阅读
- javascript - 在表单标签更改按钮/输入选项中选择
- postfix-mta - 无法在 postfix 中创建本地邮箱
- mysql - MySQL - 内部联接 - 全局 ORDER BY
- flutter - 如何导航到 SearchDelegate 中的特定页面
- java - 如何在我的计时器上再增加一分钟?
- python - 在 tkinter 中显示来自函数的 matplotlib 图
- python - 如何将 url id 设置为特定字段 django
- php - 按最大值多维数组/对象排序
- mysql - 如何删除没有任何主键或 ID 的完整行
- azure-ad-b2c - 如何使用 javascript 访问 b2c 登录元素以进行 UI 自定义