Laravel 검색 및 삭제는 특히 콘텐츠 관리 시스템이나 전자상거래 웹사이트와 같이 데이터에 대한 CRUD 작업이 필요한 애플리케이션 개발에서 매우 일반적인 개발 요구 사항입니다. 널리 사용되는 PHP 프레임워크인 Laravel은 풍부한 도구와 API를 제공하여 이 프로세스를 매우 간단하게 만듭니다.
1. Laravel Search
Laravel에서 검색 기능을 구현하려면 일반적으로 다음 단계가 필요합니다.
Laravel Scout는 검색 결과를 분류하고 최적화하는 애플리케이션에 적합합니다. 빠른 쿼리 구성 요소는 리팩터링하기가 더 쉽습니다. Laravel Scout는 Elasticsearch 또는 Algolia를 사용하여 검색을 수행합니다. 이러한 검색 엔진은 매우 유명하며 광범위한 커뮤니티 지원을 제공합니다.
Laravel 애플리케이션에서 구축한 Model, Controller, 데이터베이스 마이그레이션 파일을 기반으로 검색 관련 데이터베이스 마이그레이션 작업을 수행해야 합니다.
예를 들어, 사용자 데이터베이스에 "검색 가능" 열을 추가할 수 있습니다:
Schema::table('users', function (Blueprint $table) { $table->boolean('searchable')->default(false); });
여기서 검색 가능에 대해 기본값 false를 설정할 수 있습니다. 즉, 사용자는 검색을 원하지 않습니다. 또한 사용자 정보를 편집한 후 검색 가능을 true로 설정하여 해당 사용자를 검색할 수 있도록 구성할 수도 있습니다.
Laravel Scout를 사용할 때 해당 모델에서 Searchable 특성을 사용해야 합니다.
예:
namespace App;
use IlluminateDatabaseEloquentModel;
use LaravelScoutSearchable;
class User 확장 Model
{
use Searchable; // ...
}
이 프로세스가 완료된 후 모델의 save(), delete(), 복원 () 및 forceDelete() 메소드는 검색 엔진과 자동으로 동기화됩니다.
Algolia 또는 ElasticSearch에서 색인을 생성하고 검색 결과 형식을 지정하세요. 검색 결과를 최적화하기 위해 Laravel에서 Scout의 Searchable 특성을 사용할 수 있습니다.
예를 들어 Algolia에서는
use LaravelScoutSearchable;
use AlgoliaScoutExtendedSearchableAggregator;
class Note는 Model을 확장합니다
use Searchable, Aggregator; public function toSearchableArray() { $array = $this->toArray(); // 请求注入时,我们需要更新查询升级和向量分配 $array = $this->seoInject Boosts($array, [ 'title' => 1000, 'content' => 100, 'body' => 10, ]); return $array; }
2. Lara In vel의 CRUD 애플리케이션에서 삭제 작업은 매우 일반적입니다. 검색 결과에서 제거는 삭제된 데이터를 검색 엔진에서 자동으로 제거해야 하므로 상대적으로 복잡한 작업입니다. 이는 데이터베이스에서 작업해야 함을 의미합니다.
데이터 검색 및 삭제의 일반적인 과정은 다음과 같습니다.
1. 검색 결과에서 삭제할 데이터를 선택합니다.
2. 이 데이터를 "삭제"로 표시하고, 데이터베이스를 업데이트하고, 검색 엔진에서 이 데이터를 삭제하세요.
엔진에서 삭제되었습니다. 다음으로 검색결과에서 대량 삭제를 구현하는 방법에 대해 설명하겠습니다.
3. 일괄 삭제 작업 구현
여러 결과를 삭제하기 전에 프런트 엔드에 다중 선택 상자와 삭제 버튼을 개발해야 합니다. 그런 다음 컨트롤러에서 일괄 삭제 작업을 구현해야 합니다. 코드의 이 부분에는 다음이 포함됩니다.
삭제할 모든 메모를 가져옵니다.
데이터베이스에서 이 메모를 "삭제"로 표시하세요.
검색 엔진에서 이 메모를 제거하세요.
예를 들어 NoteController.php 파일에서 일괄 삭제 작업을 구현합니다.
/** * 删除一条笔记修饰符信息请求 * * @param int $id * @return IlluminateHttpResponse */ public function destroy($id) { $note = Note::find($id); if ($note) { // 从数据库中删除 $note->delete(); // 从搜索引擎中删除 $note->unsearchable(); } return redirect() ->route('notes.index') ->with('success', 'Note deleted successfully.'); }
위 코드에서는 삭제할 모든 노트 개체를 반복하고 데이터베이스와 검색 엔진에서 삭제된 것으로 표시합니다. 이 프로세스는 단일 삭제와 매우 유사합니다.
4. 요약
위 내용은 라라벨 검색 삭제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!