laravel - Laravel - 如何批准特定员工的所有帖子
问题描述
使用 Laravel-5.8,我为员工职位编写了一个代码,它运行良好:
控制器
public function index()
{
$userEmployee = Auth::user()->employee_id;
$posts = Post::latest()->where('employee_id', $userEmployee)->get();
return view('admin.post.index', compact('posts'));
}
它会生成如下所示的视图。该视图会加载特定员工的所有未批准帖子:
<table class="table table-bordered table-striped table-hover dataTable js-exportable">
<thead>
<tr>
<th>ID</th>
<th>Title</th>
<th>Author</th>
<th><i class="material-icons">visibility</i></th>
<th>Is Approved</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach($posts as $key=>$post)
<tr>
<td>{{ $key + 1 }}</td>
<td>{{ str_limit($post->title,'10') }}</td>
<td>{{ $post->user->name }}</td>
<td>{{ $post->view_count }}</td>
<td>
@if($post->is_approved == true)
<span class="badge bg-blue">Approved</span>
@else
<span class="badge bg-pink">Pending</span>
@endif
</td>
<td>
@if($post->status == true)
<span class="badge bg-blue">Published</span>
@else
<span class="badge bg-pink">Pending</span>
@endif
</td>
</tr>
@endforeach
</tbody>
<form action="{{route('admin.post.approve', $post->id)}}" method="POST" enctype="multipart/form-data">
@csrf
@method('PUT')
<div>
<button type="submit" class="btn btn-primary"><i class="fas fa-arrow-right"></i> {{ trans('global.submit') }}</button>
</div>
</form>
我想向名为approve 的视图添加一个提交按钮。单击按钮后,它会检查已加载员工的 is_approved 为 = 0 的位置,并将与员工(已加载)数据相关的所有 is_approved 变为 1。
我已经在同一个控制器中编写了这个函数,但我发现它只适用于选定的行:
public function approve($id){
$post = Post::find($id);
if ($post->is_approved == false){
$post->is_approved = true;
$post->save();
$post->user->notify(new AuthorPostApprove($post));
Toastr::success('Post Successfully Approved');
}else{
Toastr::info('Post is already Approved');
}
return redirect()->back();
}
并有这条路线/web.php
Route::get('posts/', 'PostController@index')->name('post.index');
Route::put('/post/{id}/approve', 'PostController@approve')->name('post.approve');
我如何重写我的控制器、视图和路由来实现这一点?
谢谢你。
解决方案
试试这个:
public function approve($id){
$post = Post::where('employee_id', $id)
->where('is_approved', 0)
->update(['is_approved' => 1]);
if ($post){
$post->user->notify(new AuthorPostApprove($post));
Toastr::success('Post Successfully Approved');
} else {
Toastr::info('Post is already Approved');
}
return redirect()->back();
}
推荐阅读
- c# - 在 Foreach 循环中获取的数据集/JSON 非常慢,看起来不像是数据库调用的问题
- maven - apache spark中的阴影hadoop
- wordpress - 如何从永久链接中删除“index.php”[作曲家上的 WordPress]
- ios - 错误域 = PlugInKit 代码 = 13 “查询已取消” UserInfo = {NSLocalizedDescription = 查询已取消} 与 Objective C Xcode 9.3 iOS 11
- jenkins - 詹金斯的声纳扫描仪问题
- angular - 无法在角度 6 的 ng2-smart-table 中获取删除事件
- linkedin - 如何在 android 设备的移动linkedin 应用程序中开始一个新段落?
- java - 如何将 API 访问信息输出到记录器文件中?
- javascript - React + Redux + Babel(...状态意外令牌中的 SyntaxError)
- python - 如何在 One2many 字段或关系表上基于 group by 进行搜索视图