Метод noContent
Метод noContent применяется к фасаду Response
и возвращает экземпляр класса Response с HTTP-статусом
204, который обозначает успешное выполнение запроса
без содержимого в теле ответа. Метод не принимает никаких
параметров и часто используется в контроллерах для операций
удаления или обновления, когда клиенту не нужно возвращать
никаких данных.
Синтаксис
<?php
use Illuminate\Support\Facades\Response;
Response::noContent();
?>
Пример
Давайте создадим контроллер, который обрабатывает удаление
статьи и возвращает ответ с кодом 204:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
use Illuminate\Support\Facades\Response;
class ArticleController extends Controller
{
public function destroy($id)
{
$article = Article::find($id);
if ($article) {
$article->delete();
return Response::noContent();
}
return response()->json(['error' => 'Article not found'], 404);
}
}
?>
Пример
Давайте используем метод noContent в маршруте
для обработки массового удаления статей:
<?php
use AppHttpControllersArticleController;
use Illuminate\Support\FacadesResponse;
use Illuminate\Support\FacadesRoute;
Route::delete('/articles/bulk', function () {
$ids = request()->input('ids', []);
if (empty($ids)) {
return response()->json(['error' => 'No IDs provided'], 400);
}
Article::whereIn('id', $ids)->delete();
return Response::noContent();
});
?>
Пример
Давайте используем метод noContent для очистки
данных пользователя:
<?php
namespace AppHttpControllers;
use AppModelsUser;
use Illuminate\Support\Facades\Response;
class UserController extends Controller
{
public function clearData($id)
{
$user = User::findOrFail($id);
$user->update([
'string' => null,
'text' => null,
'integer' => 0,
]);
return Response::noContent();
}
}
?>