0

我正在为博客开发 crud 操作,我想删除基于 id 的博客,因为我写了一个 api 负责删除基于 admin_id 到博客 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;
        }
    }
}
4

1 回答 1

0

DeleteBlogAction您将请求传递给类的run方法DeleteBlogTask。但是run方法DeleteBlogTask需要一个id。

所以要么做app(DeleteBlogTask::class)->run($request->input('id');DeleteBlogAction要么改变run方法的签名DeleteBlogTask,以便它期待一个请求。然后在run方法内部你可以从reqeust 中获取id。

于 2021-08-20T08:24:27.477 回答