РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
566 of 1392 menu

Метод failed

Метод failed применяется к объекту ответа, полученному от HTTP-клиента Laravel, и возвращает true, если статус ответа указывает на ошибку (код 400 или выше), и false в противном случае. Это удобный способ проверить, произошла ли ошибка при выполнении запроса, без необходимости вручную проверять код статуса. Метод не принимает никаких параметров.

Синтаксис

<?php $response->failed(); ?>

Пример

Давайте проверим, был ли успешным запрос к внешнему API:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Http; class UserController extends Controller { public function getUsers() { $response = Http::get('https://api.example.com/users'); if ($response->failed()) { echo "Request failed with status: " . $response->status(); } else { $users = $response->json(); echo "Users fetched successfully"; } } } ?>

Результат выполнения кода при успешном запросе:

"Users fetched successfully"

Результат выполнения кода при ошибке:

"Request failed with status: 404"

Пример

Давайте обработаем несколько различных кодов ошибок с помощью метода failed:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Http; class ApiController extends Controller { public function checkService() { $urls = [ 'https://api.example.com/status', 'https://api.example.com/data', 'https://api.example.com/health' ]; foreach ($urls as $url) { $response = Http::get($url); if ($response->failed()) { echo "Failed: " . $url . " - Status: " . $response->status(); } else { echo "Success: " . $url; } } } } ?>

Результат выполнения кода:

"Success: https://api.example.com/status" "Failed: https://api.example.com/data - Status: 500" "Success: https://api.example.com/health"

Пример

Давайте используем метод failed вместе с другими методами для комплексной обработки ошибок:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Http; use Illuminate\Http\Request; class PostController extends Controller { public function createPost(Request $request) { $response = Http::post('https://api.example.com/posts', [ 'title' => $request->input('title'), 'body' => $request->input('body') ]); if ($response->failed()) { if ($response->status() == 422) { echo "Validation errors: " . $response->body(); } else { echo "Error creating post. Status: " . $response->status(); } } else { echo "Post created successfully. ID: " . $response->json('id'); } } } ?>

Результат выполнения кода при успешном создании:

"Post created successfully. ID: 123"

Результат выполнения кода при ошибке валидации:

"Validation errors: {""title"":[""The title field is required.""]}"

Смотрите также

  • метод successful,
    который проверяет успешность выполнения запроса
  • метод status,
    который возвращает код статуса ответа
  • метод body,
    который возвращает тело ответа
  • метод throw,
    который выбрасывает исключение при ошибке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить