[英]laravel 5.8 cannot update value in database
我试图删除一个用户并将帖子更改为其他作者的帖子,但我只得到一个空白页。
url:
" http://127.0.0.1:8000/backend/admin/8?delete_option=attribute&selected_user=9 "
这是我的刀片
<form action="{{ route('admin.destroy', $admin->id) }}" method="DELETE">
<div class="panel panel-flat">
<div class="panel-body ">
<div class="col-xs-9">
<div class="box">
<div class="box-body">
<p>
Anda punya pilihan untuk mengapus user ini
</p>
<p>
ID #{{$admin->id}}: {{$admin->name}}
</p>
<p>
Konten yang sudah dibuat Admin ini harus diapakan?
</p>
<p>
<input type="radio" name="delete_option" value="delete" checked> Hapus semua konten atas nama admin ini
</p>
<p>
<input type="radio" name="delete_option" value="attribute"> Alihkan konten ke admin lain
<select class="form-control" name="selected_user" id="">
@foreach($user as $admin)
<option value="{{$admin->id}}">{{$admin->name}}</option>
@endforeach
</select>
</p>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-danger">Konfirmasi Delete</button>
<a href="{{ route('admin.index') }}" class="btn btn-default">Batalkan</a>
</div>
</div>
</div>
</div>
</div>
<!-- /basic layout -->
<!-- /categories -->
</form>
这是我的 controller
public function destroy(Requests\UserDestroyRequest $request, $id)
{
//
$admin = User::where('id', $id)->first();
$deleteOption = $request->delete_option;
$selectedUser = $request->selected_user;
if($delete_option == "delete"){
$admin->posts()->delete();
}
elseif ($deleteOption == "attribute") {
$admin->posts()->update( ['author_id' => $selectedUser]);
}
$admin->delete();
return redirect()->route('admin.index')->with('message', 'Admin berhasil dihapus!');
}
public function confirm(Requests\UserDestroyRequest $request, $id)
{
//
$admin = User::findOrFail($id);
$user = User::where('id', '!=', $admin->id)->get();
return view("backend.admin.confirm", compact('admin', 'user'));
}
任何人都知道导致数据库中 author_id 的值不更新的问题是什么?
在您的User
model 中创建这样的关系
public function posts(){
return $this->hasMany(Post::class,'author_id','id');
}
在您的Post
model 中创建这样的关系
public function user(){
return $this->belongsTo(User::class);
}
并替换这个
if($deleteOption == "delete"){
$admin->posts()->delete();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.