×ðÁú¿­Ê±

laravelËÑË÷ɾ³ý

laravelËÑË÷ɾ³ýÊÇÒ»ÖַǾ­³£¼ûµÄ¿ª·¢ÐèÇó £¬ÌØÊâÊÇÔÚ¿ª·¢ÄÚÈÝÖÎÀíϵͳ»òµç×ÓÉÌÎñÍøÕ¾µÈÐèÒª¶ÔÊý¾Ý¾ÙÐÐcrud²Ù×÷µÄÓ¦ÓÃÖÐ ¡£laravel×÷Ϊһ¸öÊ¢ÐеÄphp¿ò¼Ü £¬ÌṩÁ˸»ºñµÄ¹¤¾ßºÍapi £¬Ê¹µÃÕâ¸öÀú³Ì±äµÃºÜÊǼòÆÓ ¡£

Ò»¡¢LaravelËÑË÷

ÔÚLaravelÖÐʵÏÖËÑË÷¹¦Ð§Í¨³£ÐèÒªÒÔÏ°취:

×°ÖÃLaravel Scout

Laravel ScoutÊÊÓÃÓÚ¶ÔËÑË÷Ч¹û¾ÙÐзÖÀàºÍÓÅ»¯µÄÓ¦Óà £¬Scout±ÈÕÕÔ­ÉúµÄËÑË÷ÅÌÎÊËÙÂʸü¿ì £¬ÅÌÎÊ×é¼þ¸üÈÝÒ×±»Öع¹ ¡£Laravel ScoutʹÓÃElasticsearch»òAlgoliaÀ´Ö´ÐÐËÑË÷ £¬ÕâЩËÑË÷ÒýÇæÊǺÜÊÇÊ¢ÐеÄ £¬²¢ÓµÓÐÆÕ±éµÄÉçÇøÖ§³Ö ¡£

Êý¾Ý¿âǨáã

ÔÚLaravelÓ¦ÓÃÖн¨ÉèModel¡¢ControllerºÍÊý¾Ý¿âǨáãÎļþµÄ»ù´¡ÉÏ £¬ÎÒÃÇÐèÒª¾ÙÐÐËÑË÷Ïà¹ØµÄÊý¾Ý¿âǨáã²Ù×÷ ¡£

ÀýÈç £¬ÔÚÓû§Êý¾Ý¿âÖÐÎÒÃÇ¿ÉÒÔÌí¼ÓÒ»¸ö¡°searchable¡±ÁУº

Schema::table('users', function (Blueprint $table) {
    $table->boolean('searchable')->default(false);
});

µÇ¼ºó¸´ÖÆ

ÕâÀïÎÒÃÇ¿ÉÒÔ¸øsearchableÉèÖÃĬÈÏÖµfalse £¬¼´Óû§²»Ï£Íû±»ËÑË÷ ¡£Ò²¿ÉÒÔÉèÖÃÔÚÓû§ÐÅÏ¢±à¼­ÍêÖ®ºó £¬½«searchableÉèÖÃΪtrue £¬Óû§¾Í¿ÉÒÔ±»ËÑË÷ÁË ¡£

ʹÓÃScout±ê¼ÇÄ£×Ó

ʹÓÃLaravel Scoutʱ £¬ÎÒÃÇÐèÒªÔÚ¶ÔÓ¦µÄModelÖÐʹÓÃSearchable trait ¡£

ÀýÈ磺

namespace App;

use IlluminateDatabaseEloquentModel;

use LaravelScoutSearchable;

class User extends Model

{

use Searchable;

// ...

µÇ¼ºó¸´ÖÆ

}

Õâ¸öÀú³ÌÍê³Éºó £¬Ä£×ÓµÄsave()¡¢delete()¡¢restore()ºÍforceDelete()ÒªÌå»á×Ô¶¯ÓëËÑË÷ÒýÇæͬ²½ ¡£

ʹÓÃAlgolia»òElasticSearch

ÔÚAlgolia»òElasticSearchÖн¨ÉèË÷ÒýºÍÉèÖÃËÑË÷Ч¹ûÃûÌà ¡£ÎªÁËÓÅ»¯ËÑË÷Ч¹û £¬ÎÒÃÇ¿ÉÒÔÔÚLaravelÖÐʹÓÃScoutµÄSearchable trait ¡£

ÀýÈç £¬ÔÚAlgoliaÖУº

namespace App;

use LaravelScoutSearchable;

use AlgoliaScoutExtendedSearchableAggregator;

class Note extends Model

{

use Searchable, Aggregator;

public function toSearchableArray()
{
    $array = $this->toArray();

    // ÇëÇó×¢Èëʱ£¬ÎÒÃÇÐèÒª¸üÐÂÅÌÎÊÉý¼¶ºÍÏòÁ¿·ÖÅÉ
    $array = $this->seoInject Boosts($array, [
        'title' => 1000, 
        'content' => 100,
        'body' => 10,
    ]);

    return $array;
}

µÇ¼ºó¸´ÖÆ

}

¶þ¡¢LaravelËÑË÷ɾ³ý

ÔÚLaravelµÄCRUDÓ¦ÓÃÖÐ £¬É¾³ý²Ù×÷ÊǺÜÊÇÆÕ±éµÄ ¡£ÔÚËÑË÷Ч¹ûÖоÙÐÐɾ³ý²Ù×÷ÊÇÒ»¸öÏà¶ÔÖØ´óµÄʹÃü £¬ÓÉÓÚÄúÐèÒª½«É¾³ýµÄÊý¾Ý×Ô¶¯´ÓËÑË÷ÒýÇæÖÐɾ³ý ¡£ÕâÒâζ×Å £¬ÎÒÃÇÐèÒª¶ÔÊý¾Ý¿â¾ÙÐвÙ×÷ ¡£

ÒÔÏÂÊÇʵÏÖËÑË÷²¢É¾³ýÊý¾ÝµÄ´óÖÂÁ÷³Ì£º

1.ÔÚËÑË÷Ч¹ûÖÐѡժҪɾ³ýµÄÊý¾Ý ¡£

2.½«ÕâЩÊý¾Ý±ê¼ÇΪ¡°É¾³ý¡± £¬¸üÐÂÊý¾Ý¿â £¬²¢´ÓËÑË÷ÒýÇæÖÐɾ³ýÕâЩÊý¾Ý ¡£

namespace AppHttpControllers;

use AppNote;

use IlluminateHttpRequest;

class NoteController extends Controller

{

/**
 * ɾ³ýÒ»ÌõÌõ¼ÇÐÞÊηûÐÅÏ¢ÇëÇó
 *
 * @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.');
}

µÇ¼ºó¸´ÖÆ

}

ÔÚÉÏÃæµÄʾÀýÖÐ £¬ÎÒÃÇ´ÓÊý¾Ý¿âÖÐɾ³ýÁËÌõ¼Ç²¢´ÓËÑË÷ÒýÇæÖÐɾ³ý ¡£½ÓÏÂÀ´ £¬ÎÒÃÇ»áÌÖÂÛÔõÑùÔÚËÑË÷Ч¹ûÖÐʵÏÖÅúÁ¿É¾³ý²Ù×÷ ¡£

Èý¡¢ÊµÏÖÅúÁ¿É¾³ý²Ù×÷

ÔÚ½«¶à¸öЧ¹ûɾ³ý֮ǰ £¬ÎÒÃÇÐèÒªÔÚÇ°¶Ë¿ª·¢Ò»¸ö¶àÑ¡¿òºÍɾ³ý°´Å¥ ¡£È»ºó £¬ÎÒÃÇÐèÒªÔÚ¿ØÖÆÆ÷ÖÐʵÏÖÅúÁ¿É¾³ý²Ù×÷ ¡£Õⲿ·Ö´úÂë°üÀ¨£º

»ñÈ¡ËùÓÐҪɾ³ýµÄÌõ¼Ç ¡£

ÔÚÊý¾Ý¿âÖбê¼ÇÕâЩÌõ¼ÇΪ¡°É¾³ý¡± ¡£

´ÓËÑË÷ÒýÇæÖÐɾ³ýÕâЩÌõ¼Ç ¡£

Öض¨Ïòµ½Ô­À´µÄ·ÓÉ ¡£

ÀýÈç £¬ÔÚNoteController.phpÎļþÖÐ £¬ÊµÏÖÅúÁ¿É¾³ý²Ù×÷£º

/**
 * ɾ³ý¶àÌõÌõ¼Ç±¬·¢ÇëÇó
 *
 * @param Request $request
 * @return IlluminateHttpResponse
 */
public function multiDestroy(Request $request)
{
    $notesId = $request->ids;

    foreach ($notesId as $noteId) {
        $note = Note::find($noteId);
        if ($note) {
            $note->delete();
            $note->unsearchable();
        }
    }

    return redirect()
        ->route('notes.index')
        ->with('success', 'Notes were deleted successfully.');
}

µÇ¼ºó¸´ÖÆ

ÔÚÉÏÃæµÄ´úÂëÖÐ £¬ÎÒÃDZéÀúÁËËùÓÐҪɾ³ýµÄÌõ¼Ç¹¤¾ß £¬²¢ÔÚÊý¾Ý¿âºÍËÑË÷ÒýÇæÖн«ËüÃDZê¼ÇΪɾ³ý״̬ ¡£Õâ¸öÀú³ÌºÍµ¥É¾ºÜÀàËÆ ¡£

ËÄ¡¢×ܽá

±¾ÎÄÏÈÈÝÁËÔõÑùÔÚLaravelÓ¦ÓóÌÐòÖÐʵÏÖËÑË÷ɾ³ý £¬º­¸ÇÁËLaravel¿ò¼ÜºÍScoutÄ£¿éµÄ»ù±¾Ó÷¨ºÍ¿ØÖÆÆ÷´¦Öóͷ£ÒªÁì ¡£¿ÉÒÔͨ¹ýÕâ¸öʾÀýÔÚ×Ô¼ºµÄLaravelÓ¦ÓóÌÐòÖÐʵÏÖÏàͬµÄ¹¦Ð§ £¬ÎªÄú¿ª·¢Ô½·¢Àû±ã ¡£

ÒÔÉϾÍÊÇlaravelËÑË÷ɾ³ýµÄÏêϸÄÚÈÝ £¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí £¬°æȨÕùÒéÓë±¾Õ¾ÎÞ¹Ø £¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±ÂËÓÍ»úÍø¹Ù·½Ì¬¶È £¬Çë¶ÁÕß½ö×ö²Î¿¼ ¡£±¾ÎĽӴýתÔØ £¬×ªÔØÇë˵Ã÷À´ÓÉ ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢ £¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢ £¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±ÊµÊ±ÐÞÕý»òɾ³ý ¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎå £¬9:30-18:30 £¬½ÚãåÈÕÐÝÏ¢

QR code
¡¾ÍøÕ¾µØͼ¡¿¡¾sitemap¡¿