Skip to content

Latest commit

 

History

History
116 lines (101 loc) · 3.55 KB

README.md

File metadata and controls

116 lines (101 loc) · 3.55 KB

Build Status Scrutinizer Code Quality Coverage Status Latest Stable Version Latest Unstable Version Total Downloads Monthly Downloads Daily Downloads

POData-Laravel

Composer Package to provide Odata functionality to Laravel to install run

composer require algo-web/podata-laravel

Edit config/app.php and add this to providers section:

AlgoWeb\PODataLaravel\Providers\MetadataProvider::class,
AlgoWeb\PODataLaravel\Providers\MetadataRouteProvider::class,
AlgoWeb\PODataLaravel\Providers\QueryProvider::class,

You then add the trait to the models you want to expose.

    use \AlgoWeb\PODataLaravel\Models\MetadataTrait;

-- Known Limitations --

  • Cannot expose two models with the same class name in different namespaces - trying to expose both App\Foo\Model and App\Bar\Model will trip an exception complaining that resource set has already been added.
  • This can be worked around by setting a custom endpoint name on one of the colliding models.
  • Controller input parameters map 'id' to underlying model's primary key

-- Configuration options --

  • APP_METADATA_CACHING - Whether or not to turn model metadata caching on
  • APP_METADATA_CACHE_DURATION - If caching, how long (in minutes) to retain cached metadata
  • APP_DISABLE_AUTH - Disable authentication (boolean)
  • APP_DRY_RUN - Roll back DB changes unconditionally (boolean)

Contributing

See CONTRIBUTING.md for the details.

Features Supported

(thanks to @renanwilliam for the initial version of this list)

  • Full CRUD Support
  • $count
  • $filter
    • Comparison Operators
      • eq
      • ne
      • lt
      • le
      • gt
      • ge
    • Logical Operators
      • and
      • or
      • not
    • Comparison Operators
      • has
    • String Functions
      • indexof
      • contains
      • endswith
      • startswith
      • length
      • substring
      • tolower
      • toupper
      • trim
      • concat
    • Arithmetic Operators
      • add
      • sub
      • mul
      • div
      • mod
    • Date Functions
      • year
      • month
      • day
      • hour
      • minute
      • second
      • fractionalseconds
      • date
      • time
      • totaloffsetminutes
      • now
      • mindatetime
      • maxdatetime
    • Math Functions
      • round
      • floor
      • ceiling
  • $select
  • $top
  • $skip
  • $skiptoken
  • $orderby
  • $expand

The capabilities under $filter currently rely on the deprecated-in-PHP-7.2 create_function capability.