with(['icon', 'iconGray'])->all(); } public function actionImage(Request $request, Response $response) { $img = Image::find()->where([ 'sha256' => $request->getQueryParam('sha256') ])->one(); if (!$img) { throw new NotFoundHttpException(); } $response->headers->set('Content-Type', $img->mime); $response->headers->set('X-Image-Data', json_encode($img->getAttributes())); return $response->sendFile(env('UPLOADS_PATH') . '/' . $img->sha256, $img->original_name); } public function verbs() { return [ 'index' => [ 'GET' ], ]; } public function behaviors() { return [ [ 'class' => ContentNegotiator::class, 'formats' => [ 'image/*' => Response::FORMAT_RAW, 'application/json' => Response::FORMAT_JSON ] ] ]; } }