[Laravel] 의도치 않게 사용된 무명 함수

7938 단어 LaravelPHPtech

이른바 무명 함수


PHP공식 문서에는 다음과 같은 설명이 있습니다.
무명 함수는 클론이라고도 불리며 함수 이름을 지정하지 않고 함수를 만들 수 있다.callable 매개 변수로 사용할 때 편리하지만, 용도는 이에 국한되지 않습니다.
Closure 클래스를 사용하여 무명 함수를 구현합니다.
평소에는 리베이트를 사용할 때 의식적으로 사용하지만, 그렇게 말하면 Laravel도 무의식적으로 사용하고 있고, Lravel 무명함수(호출함수)를 사용하는 상황을 귀결해 봤다.

사용 예


1. 루트의 정의


두 번째 매개 변수에서 URL(첫 번째 매개 변수)이 두드려졌을 때 실행할 처리를 설명하는 이름 없는 함수를 지정합니다.
다음 예에서 사용자가 GET 요청에서 방문/했을 때welcome의 보기를 나타낸다.
routes/web.php
Route::get('/', function () {
    return view('welcome');
});

2. 마이그레이션으로 테이블 만들기


다음 파일 및 원래 위치에서 마이그레이션tasks을 수행하면 새 테이블이 작성되고 이름이 지정되지 않은 함수에 설명된 대로 테이블 열이 작성됩니다.
database/migrations/2021_05_28_005102_create_tasks_table.php
public function up()
{
    Schema::create('tasks', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->timestamps();
    });
}

3. 하위 쿼리


쿼리 구축기에 복잡한 조건을 추가하는 데 사용합니다.
예1: join에 여러 조건이 추가된 경우authors 책상 위books에 책상을 join에 놓았을 때 외부 열쇠는 같은 물건을 연결할 뿐만 아니라 가격과 페이지 수를 줄였다.
$query->join('books', function ($join) {
    $join->on('authors.id', '=', 'books.author_id')
        ->where('books.price', '<', 500)
        ->where('books.pages', '<', 100);
})
예2: A = 500AND (B=page1OR C=page2)
다음은 책의 가격이 500엔이고 책의 페이지가 $page1인지 $page2인지에 대한 조회입니다.
$query->where('books.price', 500)
      ->where(function ($subquery) use ($page1, $page2) {              
          $subquery->where('books.pages',$page1)
                   ->orwhere('books.pages', $page2); 
        });

좋은 웹페이지 즐겨찾기