>  기사  >  PHP 프레임워크  >  매우 유용한 Laravel 선택적 도우미 기능!

매우 유용한 Laravel 선택적 도우미 기능!

藏色散人
藏色散人앞으로
2021-07-13 14:42:522195검색

Laravel의 새 버전에는 매우 유용한 보조 메소드인 선택적()optional()

这个方法的应用场景是什么呢?其实如果你多写代码的话,经常会遇到类似下面的报错信息:

Call to a member function on null object...

这其实是在我们的代码中存在着某个对象为空,所以在我们调用方法或者获取属性的时候就会报出以上错误信息。比如我们举个例子:

User 的体系中,我们也有 Profile 的 Model 文件,而一个 User 拥有一个 ProfileProfile 中包含用户的地址信息)

public function profile(){
   return $this->hasOne(Profile::class);
}

然后在我们 User 的信息页面,我们希望通过下面的代码获取 User 的地址:

$user->profile->address;

如果在数据库中,我们没有该 User 对应的 Profile,这个时候就会出现文章开始说到的类似错误了。

所以,这个时候,optional() 就可以派上用场了

我们只需要这样获取用户的地址信息就好:

optional$user->profile)->address

这个时候,即使 profile 为空值(null),这一行代码也不会报错,而是会显示一个空的字符串出来。
是不是非常有用!有了 optional() 这个辅助函数之后,在很多类似的代码中,在你不确定是否该对象会为 null 的时候,就可以加上 optional()

이 메소드의 적용 시나리오는 무엇입니까? 실제로 더 많은 코드를 작성하면 다음과 유사한 오류 메시지가 자주 표시됩니다.
rrreee
이것은 실제로 우리 코드에서 특정 객체가 비어 있기 때문에 메소드를 호출하거나 객체를 가져올 때 보고됩니다. 속성에 위의 오류 메시지가 나타납니다. 예를 들어, 그런 다음 사용자 정보 페이지에서 를 통해 <code>를 얻으려고 합니다. 다음 코드 >사용자의 주소:
rrreee🎜데이터베이스에 사용자에 해당하는 프로필이 없으면 다음과 유사한 코드가 있습니다. 기사 시작 부분에 언급된 내용이 잘못되었습니다. 🎜🎜🎜그래서 이때는 선택적()이 유용할 수 있습니다🎜🎜🎜다음과 같이 사용자의 주소 정보만 가져오면 됩니다. 🎜rrreee🎜이때 가 profile 이 null 값(null)인 경우 이 코드 줄은 오류를 보고하지 않지만 빈 문자열을 표시합니다.
정말 유용하지 않나요! 유사한 많은 코드에서 도우미 함수 ional()을 사용하면 개체가 null인지 확실하지 않은 경우 Optional()을 추가할 수 있습니다. code>가 보험을 제공하기 위해 왔습니다! 🎜🎜🎜🎜🎜관련 추천: 🎜최신 5개의 Laravel 비디오 튜토리얼🎜🎜🎜🎜

위 내용은 매우 유용한 Laravel 선택적 도우미 기능!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제