Как настроить поиск (Search) в October CMS?

Пользователь

от delphine_bartoletti , в категории: PHP , 8 месяцев назад

Как настроить поиск (Search) в October CMS?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от edyth , 8 месяцев назад

@delphine_bartoletti 

Для настройки поиска в October CMS вам потребуется выполнить следующие шаги:

  1. Создайте модель, для которой вы хотите включить поиск. Например, если вы хотите добавить поиск для модели Article, создайте файл Article.php в папке models с содержимым:


  1. В файле модели Article добавьте следующий код для включения поддержки поиска:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use OctoberRainDatabaseTraitsSortable;
use OctoberRainDatabaseTraitsSluggable;
use OctoberRainDatabaseTraitsValidation;
use OctoberRainDatabaseTraitsSoftDelete;

class Article extends Model
{
    use Validation, Sortable, Sluggable, SoftDelete;

    // Define the searchable fields
    public $implement = ['@RainLab.Translate.Behaviors.TranslatableModel'];
    public $translatable = ['title', 'content'];
    public $slugs = ['slug' => 'title', 'code' => 'id'];

    public $rules = [
        // Define the validation rules for your model
    ];

    public $fillable = [
        // Define the fillable fields in your model
    ];

    public $searchable = [
        'title',
        'content',
        // Add any other fields you want to include in the search
    ];

    // ...
}


  1. Обновите базу данных соответствующей таблицы, чтобы отразить изменения модели, используя команду php artisan october:up.
  2. В вашем контроллере, где отображается список статей, вы можете добавить поиск путем добавления следующего кода в метод index():
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
public function index()
{
    $searchTerm = input('search');

    $articles = Article::where(function ($query) use ($searchTerm) {
        $query->where('title', 'like', "%{$searchTerm}%")
              ->orWhere('content', 'like', "%{$searchTerm}%");
        // Add any other fields you want to include in the search
    })->paginate();

    return view('acme.blog::index', compact('articles'));
}


  1. В вашем представлении index.blade.php добавьте форму для поиска:
1
2
3
4
    
    Search


Замените /articles на путь к методу index() вашего контроллера, если он отличается от /articles.


После выполнения всех этих шагов, вы сможете использовать поиск в October CMS для модели Article.