php-kitchen/yii2-domain

View on GitHub
src/Web/Base/Models/ListingModel.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace PHPKitchen\Domain\Web\Base\Models;

use PHPKitchen\Domain\Contracts\Specification;

/**
 * Represents a view model designed to be used in listing actions.
 *
 * @package PHPKitchen\Domain\Web\Base
 * @author Dmitry Kolodko <prowwid@gmail.com>
 */
class ListingModel extends ViewModel {
    public $fetchDataAsArray = true;

    /**
     * Override this method
     *
     * @return \PHPKitchen\Domain\Data\EntitiesProvider
     */
    public function getDataProvider() {
        $provider = $this->repository->getEntitiesProvider();
        if ($this->fetchDataAsArray) {
            $provider->query->asArray();
        }
        if ($provider->query instanceof Specification) {
            $provider->query->bySearchModel($this);
        }

        return $provider;
    }
}