WEB-Программист
Przełącz nawigację

Język

  • Українська
  • Русский
  • Polski
  • Українська
  • Русский
  • Polski
Skontaktuj się z nami

Szukaj

  • Books
  • Bez kategorii
  • wordpress [PL]
  • Czcionki
  • Laravel [PL]
  • Articles
  • wordpress [PL]
  • © 2015-2026 Andrii Beznosko

  • Hosting CityHost

Rozszerzamy klasy Laravel metodą `orAbort` za pomocą traitu

  • Opis
  • Opis/Pobieranie

Zainspirowany artykułem Edd Man’s o opcjonalnych kontrolnych przepływach, stworzyłem mały pakiet do Laravel, który realizuje opcjonalne zatrzymanie aplikacji.

Udostępnia on trait SpatieOrAbortOrAbort, który może być używany z dowolną klasą. Do wszystkich metod klasy dodawana jest funkcjonalność orAbort. Gdy oryginalna metoda zwróci false, zostanie wywołana funkcja Laravel abort z kodem błędu 404.

Dlaczego chciałbyś używać tego traitu? Zwykle mogłeś robić coś takiego:

$article = $articleRepository->find($articleId) ?: abort(404)

 

Po użyciu traitu powyższy kod zamieni się w bardziej czytelny:

$article = $articleRepository->findOrAbort($articleId);

Możesz nawet dodać dodatkowy parametr z kodem zwracanym:

$article = $articleRepository->findOrAbort($articleId, 500);

 

Jeśli metoda find naszego repozytorium zwróci false, Laravel zatrzyma aplikację z kodem 500.

Trait orAbort wykorzystuje magiczną metodę __call. Nie stosuj go w klasach, które już używają tej metody.

Pakiet można znaleźć na GitHub.

Comments
Łącznie komentarzy: 0
Dodaj komentarz Anuluj odpowiedź

Twój adres e-mail nie zostanie opublikowany.

Kategoria: Главная » Laravel » Rozszerzamy klasy Laravel metodą `orAbort` za pomocą traitu
Status: Для продвинутых программистов
Original article link (if specified or if this article is not authored by us) Download
Submitted by kwi 17, 2026 00:23 Andriy

Articles published on WEB-Программист are provided with source links. The site administration is not responsible for your use of these materials.

Laravel
Previous Next

Zobacz też:

Tworzenie pakietów dla Laravel

Prosper Otemuyiwa niedawno opublikował artykuł o tym, jak tworzyć pakiety dla Laravel 5 na swoim blogu. Chociaż jego sposób jest w pełni poprawny i może ci odpowiadać, ja wolę nieco inny sposób tworzenia pakietów. Na początku tworzę nowe repozytorium na...

Rozszerzamy klasy Laravel metodą `orAbort` za pomocą traitu

Zainspirowany artykułem Edd Man's o opcjonalnych kontrolnych przepływach, stworzyłem mały pakiet do Laravel, który realizuje opcjonalne zatrzymanie aplikacji. Udostępnia on trait SpatieOrAbortOrAbort, który może być używany z dowolną klasą. Do wszystkich metod klasy dodawana jest funkcjonalność orAbort. Gdy oryginalna metoda...

DDD Ultra-Light

Niektórzy ludzie mówią, że DDD jest trudne, kosztowne i powinno być stosowane z ostrożnością. Niektóre zespoły praktykują „DDD Life” — używają wzorców projektowania aplikacji opisanych przez Erica Evansa w dużej niebieskiej książce, ale ignorują idee, które uważa się za naprawdę...

Praca z polami nullable w Eloquent w Laravel

Wstęp Jeśli masz w Laravel kilka modeli z jednym polem nullable, tworzenie mutatora dla tego pola jest procesem dość trywialnym: public function setNicknameAttribute($nickname) { $this->attributes['nickname'] = trim($nickname) == '' ? null : trim($nickname); }   Tutaj sprawdzamy dane wejściowe, w...

Skontaktuj się z nami

- Motywy i wtyczki premium WP Star za darmo -

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
Cookie settingsACCEPT
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
SAVE & ACCEPT