Laravel 명명된 쿼리 인수
8238 단어 laravel
$users = DB::table('users')
->where('name', '=', 'John')
->where(function ($query) {
$query->where('votes', '>', 100)
->orWhere('title', '=', 'Admin');
})
->get();
클로저가 많은 더 복잡한 쿼리에서
$query
인수를 반복해서 사용하면 가독성이 떨어질 수 있습니다.$users = DB::table('users')
->where('name', '=', 'John')
->where(function ($query) {
$query->whereHas('role', function ($query) {
$query->whereIn('slug', ['leader', 'deputy'])
->whereHas('team', function ($query) {
$query->whereIn(
'slug',
['sales', 'finance'],
);
});
});
})
->get();
$query
인수를 테이블 이름에 따라 명명된 변수(예: $teams
)로 바꾸면 작업을 보다 원활하게 수행할 수 있는 메서드에 작업 중인 테이블이 접두사로 표시됩니다.$users = DB::table('users')
->where('name', '=', 'John')
->where(function ($users) {
$users->whereHas('role', function ($roles) {
$roles->whereIn('slug', ['leader', 'deputy'])
->whereHas('team', function ($teams) {
$teams->whereIn(
'slug',
['sales', 'finance'],
);
});
});
})
->get();
이 접근 방식은 예를 들어 특정 쿼리의 조건을 디버깅하려고 할 때와 같이 여러 줄을 스캔하거나 컨텍스트에서 벗어난 항목을 읽을 때도 도움이 됩니다.
// Need to add the "senior-managers"
// to the condition for the teams table
// Could this be the right condition,
// which table's slug is this?
$query->whereIn(
'slug',
['sales', 'finance'],
);
// If the query argument has been named,
// then we immediately know which table it is 🙂
$teams->whereIn(
'slug',
['sales', 'finance'],
);
Reference
이 문제에 관하여(Laravel 명명된 쿼리 인수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/michaelvickersuk/laravel-named-query-arguments-28kd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)