PHP code example of nycu-csit / laravel-query-builder
1. Go to this page and download the library: Download nycu-csit/laravel-query-builder library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
nycu-csit / laravel-query-builder example snippets
use NycuCsit\LaravelQueryBuilder\QueryBuilder;
use NycuCsit\LaravelQueryBuilder\OperatorSet;
QueryBuilder::for(User::class)
->whereNull('deleted_at') // laravel query builder function
->allowedFilter('year', 'number', OperatorSet::NUMBER_NULLABLE) // filter feature
->get(); // laravel query builder function
QueryBuilder::for(User::class)
->allowedFilter(
'year', // parameter name
'number', // type
OperatorSet::NUMBER_NULLABLE, // allowed operators
'registered_year', // column name, if omitted, use parameter name as column name
'eq', // default operator, 'eq' if omitted
)
->toSql();
use NycuCsit\LaravelQueryBuilder\Criteria\AllowedFilter;
QueryBuilder::for(User::class)
// use add() to add any implementation of NycuCsit\Contract\CriteriaQueryBuilder
// shorthand criteria are in NycuCsit\Criteria
->add([
AllowedFilter::for('email', 'string', OperatorSet::STRING, 'other_email', 'eq')
])
->toSql();
// The name of this scope is 'banned'
public function scopeBanned($query)
{
return $query->where('banned', true);
}
QueryBuilder::for(\App\Models\User::class)
->allowedScopes(
[
'isBanned', // parameter name
null, // argument transformer
'banned' // scope name, null if the parameter name is scope name
], // other scopes ...
)
->toSql();
// The name of this scope is 'ofCondition'
public function scopeOfCondition($query, string $email = '', int $id = -1, bool $active = true)
{
return $query->where('email', $email)->orWhere('id', $id)->orWhere('active', $active);
}
use NycuCsit\LaravelQueryBuilder\Criteria\AllowedFilterExistence;
QueryBuilder::for(User::class)
->add([
AllowedFilterExistence::for('orders', 'orders', OperatorSet::EXIST_COUNT)
])
->toSql();
QueryBuilder::for(User::class)
->allowedIncludes([
// key is parameter name, if there are no string key, use relationship name as parameter name
// value is relationship name
'posts' => 'news_posts',
'orders'
// ...
])
->toSql();
QueryBuilder::for(User::class)
->allowedSorts([
// key is parameter name, if there are no string key, use column name as parameter name
// value is column name
'create_time' => 'created_at',
'email'
// ...
])
->toSql();
QueryBuilder::for(User::class)
->allowedCounts([
// key is parameter name, if there are no string key, use relationship name as parameter name
// value is relationship name
'posts' => 'news_posts',
'orders'
// ...
])
->toSql();
use NycuCsit\LaravelQueryBuilder\ModelCriteria\HasExtraQuery;
class Post extends Model
{
use HasExtraQuery;
// ...
}
$post = Post::find($id);
$post->allowedLoad(/* parameter name */'author', /* relation name */'user');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.