Skip to content

Custom Request Kullanımı

Selahattin Ünlü edited this page Jun 14, 2017 · 3 revisions

Fikir nereden geldi:


Bazen direkt olarak Request objesini query builder'a vermek yerine query'i oluşturmak için parametreleri kendiniz belirtmek isteyebilirsiniz.

Bu amaçla özel request objesini oluşturmanız gerekiyor. Bu işi biraz daha kolaylaştırmak için "RequestCreator" eklendi.

Böylece /api/users?name=selahattin&age!=23&created_at!=[null] şeklindeki bir uri'a yapılan istekle oluşan Request objesini direkt olarak QueryBuilder'a geçmek yerine isterseniz kendi Request objenizi oluşturup şu şekilde kullanabilirsiniz:

<?php

use Unlu\Laravel\Api\RequestCreator;
use Unlu\Laravel\Api\QueryBuilder;
use App\User;

class UserController extends Controller
{
  public function index()
  {
    $request = RequestCreator::createWithParameters([
      'name' => 'selahattin',
      'age' => '!=18',
      'created_at' => '!=[null]'
    ]);

    $queryBuilder = new QueryBuilder(new User, $request);
    .
    .
    .
  }
}

Operatörlere Göre Kullanım

=

RequestCreator::createWithParameters([
  'columns' => 'name,age,city_id',
  'includes' => 'city',
  'name' => 'sela*',
  'limit' => '3',
  'order_by' => 'id,desc'
]);

<, >, <=, >=

RequestCreator::createWithParameters([
  'age' => '<18',
  'other_column' => '>23',
  'other_column2' => '<=26',
  'one_other_col' => '>=28'
]);

whereIn, whereNotIn

RequestCreator::createWithParameters([
  'age' => '[]=18&age[]=23', // whereIn
  'other' => '[]!=17&other[]!=26' //whereNotIn
]);

null

RequestCreator::createWithParameters([
  'age' => '!=[null]',
  'updated_at' => '=[null]'
]);