我正在开发博客的crud操作,我想根据id删除博客,为此我写了一个接口,负责根据博客ID的admin_id删除博客,它不是删除博客,我没有得到我哪里弄错了,请帮助我解决这个问题。
BlogsContainer.php
public function deleteBlog(DeeleteBlogRequest $request){
$delete=app(DeleteBlogAction::class)->run($request);
return $this->noContent();
}DeeleteBlogrequest.php
public function rules(): array
{
return [
'id' => 'required'
];
}DeleteBlogAction.php
public function run(DeeleteBlogRequest $request)
{
// $var = app(Task::class)->run($arg1, $arg2);
$delete=app(DeleteBlogTask::class)->run($request);
return $delete;
}DeleteBlogTask.php
class DeleteBlogTask extends Task
{
protected BlogsModel $repository;
public function __construct(BlogsModel $repository)
{
$this->repository=$repository;
// ..
}
public function run($id)
{
$book=BlogsModel::findOrFail($id);
$book->admin_id=BlogsModel::where('admin_id',$book)->value('admin_id');
$token = JWTAuth::getToken();
$details = JWTAuth::getPayload($token)->toArray();
$Admin_id = $details["sub"];
if($Admin_id==$book->admin_id){
return $trash=$this->repository->delete($id);
// return $trash;
}
}
}发布于 2021-08-20 08:24:27
在DeleteBlogAction中,您将请求传递给DeleteBlogTask类的run方法。但是DeleteBlogTask的run方法需要一个id。
因此,要么在DeleteBlogAction中执行app(DeleteBlogTask::class)->run($request->input('id');,要么更改DeleteBlogTask的run方法的签名,以便它等待请求。然后,在run方法中,您可以从reqeust中获取id。
https://stackoverflow.com/questions/68858661
复制相似问题