Поделитесь опытом, как реализуете поиск в CRUD приложениях.
Пример,
есть модель Post
Код: Выделить всё
<?php
class Post extends \yii\base\Model
{
public $id;
public $title;
public $body;
public $someFiled;
...
public function rules()
{
return [
// валидация
];
}
}
Код: Выделить всё
<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
use app\models\Entity;
class DefaultController extends Controller
{
public function actionIndex()
{
// полчение данных
$posts = ...
return $this->render('post-index', ['posts' => $posts]);
}
}
В случае с ActiveRecord более менее все понятно, создается модель PostSearch, расширяющая Post. Вызывается метод search, в которой передаются данные из формы и на основе этих данных формируется DataProvider по необходимым критериям.
В случае использования доктрины и репозиториев, правильно ли я понимаю, что логику из метода search переносим в метод репозитория, например findByCriteria(array $criteria)?
Что если этот поиск по сущности необходим из административного интерфейса (больше критериев) и из пользовательского? Проверять переданные параметры или разнести на несколько методов?
Может кто поделится примерами.
Спасибо