, Mueller III a..., Mueller III a, Clarissa Howe, Clay Pagac, Cleta Watersr, Dane Gibson IV, Darian Pagac DVM, Dr. Cayla Rosenbaum, Dr. Daija Kihn II3, Dr. Diego Raynor, Dr. Melisa Raynor PhD asd, Ephraim Quitzon, Foster Kerluke, Gabrielle Mitchell, Germaine Toy, Helmer Haley, Jerome Considine2, Joannie Hills, Marcelina Wehner, Miss Zieme, Mr. Barney Macejkovic V, Mr. Jonathon Gibson PhD, Ms. Petra Fadel, nieuwgf, Owen Nicolas, Prof. Bartholome Metz PhD, Prof. Jerald Cremin DVM, qqqqq, Raoul Runte, Reta Sporer II, shane, sVicky Rempel MD, Vicenta Dickens, www.freesad.c2
Sit quibusdam quos i...Sit quibusdam quos ipsam temporibus facere. Iure voluptatem perferendis distinctio aut consequatur. Nesciunt praesentium cum id et qui et. Natus tenetur laboriosam temporibus molestiae dolores ratione.
Reiciendis at et autem quidem quidem rerum sit. Qui eum et et alias. Hic sint fuga quidem in enim.
Velit odit et dolor...Velit odit et dolor distinctio dolorem. Nulla saepe iste et qui sed rerum voluptates. Velit et velit ipsa quo aspernatur omnis. Quos vitae distinctio eligendi recusandae. Non sit officia laborum voluptatibus officiis sed ipsam.
Quidem aut ab ipsam numquam aut sed neque. Adipisci minima qui et omnis non voluptatem. Dolor dolor et distinctio fuga. Minus facere asperiores maxime.
, Mueller III a..., Mueller III a, Clarissa Howe, Clay Pagac, Cleta Watersr, Dane Gibson IV, Darian Pagac DVM, Dr. Cayla Rosenbaum, Dr. Daija Kihn II3, Dr. Diego Raynor, Dr. Melisa Raynor PhD asd, Ephraim Quitzon, Foster Kerluke, Gabrielle Mitchell, Germaine Toy, Helmer Haley, Jerome Considine2, Joannie Hills, Marcelina Wehner, Miss Zieme, Mr. Barney Macejkovic V, Mr. Jonathon Gibson PhD, Ms. Petra Fadel, nieuwgf, Owen Nicolas, Prof. Bartholome Metz PhD, Prof. Jerald Cremin DVM, qqqqq, Raoul Runte, Reta Sporer II, shane, sVicky Rempel MD, Vicenta Dickens, www.freesad.c2
Velit aspernatur vol...Velit aspernatur voluptatem odit. Placeat saepe voluptas est voluptatem non laudantium. Esse est aut et in ipsam.
Et hic tempora hic vel. Ipsa ratione consequatur aut vitae praesentium et est. Officia id sequi et sit.
Aut qui architecto d...Aut qui architecto doloribus laboriosam. Consequuntur enim sit doloribus distinctio aut nihil. Dolorum dolores delectus quam consequatur eum enim est. Est molestiae et maxime qui labore.
Nostrum modi ratione doloremque et aut. Aspernatur magni debitis iure accusantium nihil. Molestiae dolor dolores ut ea atque excepturi.
, Mueller III a..., Mueller III a, Clarissa Howe, Clay Pagac, Cleta Watersr, Dane Gibson IV, Darian Pagac DVM, Dr. Cayla Rosenbaum, Dr. Daija Kihn II3, Dr. Diego Raynor, Dr. Melisa Raynor PhD asd, Ephraim Quitzon, Foster Kerluke, Gabrielle Mitchell, Germaine Toy, Helmer Haley, Jerome Considine2, Joannie Hills, Marcelina Wehner, Miss Zieme, Mr. Barney Macejkovic V, Mr. Jonathon Gibson PhD, Ms. Petra Fadel, nieuwgf, Owen Nicolas, Prof. Bartholome Metz PhD, Prof. Jerald Cremin DVM, qqqqq, Raoul Runte, Reta Sporer II, shane, sVicky Rempel MD, Vicenta Dickens, www.freesad.c2
Perferendis dolores...Perferendis dolores maiores necessitatibus molestiae vel doloremque exercitationem. Ut ut qui et eligendi vel doloremque et.
Perferendis ducimus neque ut. Nihil sapiente consequuntur ut earum laudantium necessitatibus sed libero.
a, Anais Kertzma...a, Anais Kertzmann, Antonia Conn, Arlo Romaguera, Brenden Haaag, Clemmie Dietrich I, Cordie Predovic, Domenico Pouros, Dr. Niko Pfeffer, Ewell Mraz, FERRARIIIIIIA, Gisselle Ankunding, Hayley Feeney Jr., Jettie Bernhard, Keyon Wisozk, Landen Schuster, Luna Nikolaus MD, Madisyn Wiza, Marlen Bode, Martina Hane, Mervin Greenholt, Miss Golda Altenwerth, Miss Mabel Treutel, Mr. Garrick Smitham 2000, Mr. RodrigodSchuster Sr., Mr. Valentin Deckow, Natalia Johnson, Nella Legros, Obie Kling, Sonny Cruickshank, Stella Gleichner, Terrance Osinski, this is coolkkk, wqeqPresley Larsonp
Omnis temporibus aut...Omnis temporibus aut reiciendis eaque. Cupiditate modi placeat illo. Quod modi ipsum quisquam facilis tempora.
Aut facilis nihil libero blanditiis recusandae. Iste eum mollitia est dolores beatae assumenda. Est cumque quasi aliquid rerum voluptatem id. Repellendus ab voluptatem ut.
a, Anais Kertzma...a, Anais Kertzmann, Antonia Conn, Arlo Romaguera, Brenden Haaag, Clemmie Dietrich I, Cordie Predovic, Domenico Pouros, Dr. Niko Pfeffer, Ewell Mraz, FERRARIIIIIIA, Gisselle Ankunding, Hayley Feeney Jr., Jettie Bernhard, Keyon Wisozk, Landen Schuster, Luna Nikolaus MD, Madisyn Wiza, Marlen Bode, Martina Hane, Mervin Greenholt, Miss Golda Altenwerth, Miss Mabel Treutel, Mr. Garrick Smitham 2000, Mr. RodrigodSchuster Sr., Mr. Valentin Deckow, Natalia Johnson, Nella Legros, Obie Kling, Sonny Cruickshank, Stella Gleichner, Terrance Osinski, this is coolkkk, wqeqPresley Larsonp
Qui magnam eaque rep...Qui magnam eaque repudiandae voluptates molestias quo voluptas repellendus. Et labore quisquam recusandae aut inventore qui ea. Et earum voluptatem et. Consequatur perferendis voluptatem numquam qui explicabo aliquid et.
Recusandae est vel et eius. Sunt fugit autem magnam. Et aut voluptas veritatis repellendus qui. Iure consequatur architecto ab nemo et aspernatur laborum.
Omnis porro dicta cu...Omnis porro dicta cumque impedit placeat illo et. Dolor sapiente accusantium eaque aut occaecati.
Ipsum cum quis provident inventore voluptatem a accusantium. Exercitationem ut quia itaque nesciunt corporis nesciunt quisquam. Corrupti odio praesentium voluptas veniam quis. Saepe explicabo itaque eos non officiis.
Arno Kuphal, Chr...Arno Kuphal, Christiana Bergstrom, Dr. Celestino Welch, Dr. Lonzo Runolfsdottir PhD, Dr. Orval Bartell MD, Emely Bruen, Ervin Blanda, fsdfsdqf566lssalkdjsalkdj, Hannah Ledner Sr., Johathan Monahan, Keenan Heaney, Mac Schultzx, Marlin Schmidt, Maynard Morissette, Miss Ethelyn Klein, Miss Kaci kl2, Mr. Dean Vandervort DDS, Mr. Kaleigh Lehner, Mr. Milo Schaefer, Mr. Terence Welch Sr., Odell Kunde, Otha Stracke I, Polly Predovic, Prof. Ephraim Crona, Prof. Furman Hackett III, Prof. Jarred Prohaska, Prof. Mac Nienow PhD, Prof. Nico Bins, Prof. Ryleigh Tremblay, Prof. Sadye Rolfson DDS, qqLittle IV, Reanna Wuckertefeffeefefklj lkj, Reyes Nader, Tony Gleichner, Vern Muller, Waino Feeney, Yasmin asda
Veritatis labore qui...Veritatis labore qui aut quos asperiores. Quod occaecati qui corporis. In quaerat sint a architecto est.
Sit hic impedit rerum unde. Molestias id inventore libero ipsam. Explicabo deserunt sint neque accusamus occaecati aut. Facere et velit quis eum adipisci dolores.
Quis rerum omnis ad...Quis rerum omnis ad consequatur. Totam quisquam maiores natus sint et saepe eligendi.
Unde reprehenderit autem ut odio vel. Et voluptatem labore aliquid praesentium non. Eaque iusto sunt consequatur aut. Praesentium autem fugiat sed reiciendis.
Imperial Guard
Previous
Results 1 - 10 of
2000
Query Builder
ComplexDemoTable::$selected
Array
(
)
resources/views/complex.blade.php
<livewire:complex-demo-table />
app/Http/Livewire/ComplexDemoTable.php
<?php
namespace App\Http\Livewire;
use App\User;
use App\Planet;
use App\Region;
use App\Weapon;
use Illuminate\Support\Str;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\DB;
use Mediconesystems\LivewireDatatables\Column;
use Mediconesystems\LivewireDatatables\DateColumn;
use Mediconesystems\LivewireDatatables\TimeColumn;
use Mediconesystems\LivewireDatatables\NumberColumn;
use Mediconesystems\LivewireDatatables\BooleanColumn;
use Mediconesystems\LivewireDatatables\Http\Livewire\LivewireDatatable;
class ComplexDemoTable extends LivewireDatatable
{
public $hideable = 'select';
public $exportable = true;
public $complex = true;
public $persistComplexQuery = true;
public $afterTableSlot = 'components.selected';
public function builder()
{
return User::query()->leftJoin('planets', 'planets.id', 'users.planet_id');
}
public function columns()
{
return [
Column::checkbox(),
NumberColumn::name('id')
->label('ID')
->filterable()
->linkTo('user', 6),
Column::name('planets.name')
->label('Planet')
->filterable($this->planets)->alignRight(),
Column::name('planet.region.name')
->label('Region')
->defaultSort('desc')
->filterable($this->regions)
->truncate(8)
->searchable(),
Column::name('name')
->filterable()
->editable(),
Column::name('comrades.name')
->label('Planet Mates')
->truncate()
->filterable(),
Column::name('car.model')
->label('Car')
->alignCenter()
->filterable(['Audi', 'BMW', 'Caterham', 'Dodge', 'Ferrari', 'Jaguar', 'Lamborghini', 'Porsche']),
NumberColumn::name('posts.id:count')
->label('Post Count')
->filterable()
->alignRight(),
Column::name('weapons.name')
->filterable($this->weapons->pluck('name'))
->label('Weapon Names'),
NumberColumn::name('weapons.id')
->filterable()
->exportCallback(function ($value) {
return (string) $value;
})
->label('Weapon Count'),
Column::callback(['id', 'planet.name'], function ($id, $planetName) {
return "User $id hails from $planetName";
})->label('Computed (php closure)')
->filterOn('planets.name')
->filterable($this->planets),
Column::raw('CONCAT("User ", users.id, " hails from ", planets.name) AS planetName')
->label('Computed (raw SQL)')
->filterable(),
BooleanColumn::name('email_verified_at')
->label('Email Verified')
->filterable(),
DateColumn::name('dob')
->label('DOB')
->filterable(),
DateColumn::raw('dob AS dob2')
->label('Birthday')
->format('jS F')
->sortBy(DB::raw('DATE_FORMAT(users.dob, "%m%d%Y")')),
NumberColumn::raw('FLOOR(DATEDIFF(NOW(), users.dob)/365) AS Age')
->filterable(),
NumberColumn::name('planet.orbital_period')
->filterable(),
Column::raw("IF(planets.orbital_period REGEXP '^-?[0-9]+$', CONCAT(ROUND(DATEDIFF(NOW(), users.dob) / planets.orbital_period, 1), ' ', planets.name, ' years'), '---') AS native_age")
->filterable()
->hide(),
TimeColumn::name('bedtime')
->filterable(),
Column::callback('bedtime', 'computeBedtime')
->label('Go to bed')
->hide(),
Column::name('email')
->searchable()
->filterable()
->view('components.email'),
Column::name('bio')
->truncate(20)
->filterable(),
Column::name('role')
->searchable()
->filterable([
'Stormtrooper',
'AT-AT Pilot',
'AT-ST Driver',
'Imperial Guard',
'Shock Trooper',
'Shadow Trooper',
'Purge Trooper',
'Jumptrooper'
]),
Column::scope('selectGroupedWeaponNames', 'Weapons')
->filterable($this->weapons, 'filterWeaponNames'),
BooleanColumn::scope('hasLightSaber', 'Light Saber')
->filterable(null, 'filterHasLightSaber')
];
}
public function getPlanetsProperty()
{
return Planet::pluck('name');
}
public function getRegionsProperty()
{
return Region::pluck('name');
}
public function getWeaponsProperty()
{
return Weapon::all();
}
public function computeBedtime($date)
{
if (!$date) {
return;
}
return Carbon::parse($date)->isPast()
? Carbon::parse($date)->addDay()->diffForHumans(['parts' => 2])
: Carbon::parse($date)->diffForHumans(['parts' => 2]);
}
public function rowClasses($row, $loop)
{
return 'divide-x divide-gray-100 text-sm text-gray-900 ' . ($this->rowIsSelected($row) ? 'bg-yellow-100' : ($row->{'car.model'} === 'Ferrari' ? 'bg-red-500' : ($loop->even ? 'bg-gray-100' : 'bg-gray-50')));
}
public function cellClasses($row, $column)
{
return 'text-sm ' . ($this->rowIsSelected($row) ? ' text-gray-900' : ($row->{'car.model'} === 'Ferrari' ? ' text-white' : ' text-gray-900'));
}
}
app/User.php
<?php
namespace App;
use App\Planet;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable, SoftDeletes;
protected $fillable = [
'name', 'email', 'password',
];
protected $hidden = [
'password', 'remember_token',
];
protected $casts = [
'email_verified_at' => 'datetime',
];
public function car()
{
return $this->hasOne(Car::class);
}
public function comrades()
{
return $this->hasManyThrough(User::class, Planet::class, 'id', 'planet_id', 'planet_id', 'id');
}
public function posts()
{
return $this->hasMany(Post::class);
}
public function weapons()
{
return $this->belongsToMany(Weapon::class);
}
public function planet()
{
return $this->belongsTo(Planet::class);
}
public function region()
{
return $this->hasOneThrough(Region::class, Planet::class, 'id', 'id', 'planet_id', 'region_id');
}
public function scopeSelectGroupedWeaponNames($query, $alias)
{
$query->addSelect([
$alias => Weapon::selectRaw('GROUP_CONCAT(name SEPARATOR " | ")')
->leftJoin('user_weapon', 'user_weapon.weapon_id', 'weapons.id')
->whereColumn('user_weapon.user_id', 'users.id')
]);
}
public function scopeFilterWeaponNames($query, $value)
{
$query->whereHas('weapons', function ($query) use ($value) {
$query->where('weapons.id', $value);
});
}
public function scopeHasLightSaber($query, $alias)
{
$query->addSelect([
$alias => Weapon::selectRaw('IF(COUNT(weapons.id), 1, 0)')
->leftJoin('user_weapon', 'user_weapon.weapon_id', 'weapons.id')
->whereColumn('user_weapon.user_id', 'users.id')
->where('weapons.name', 'Light Saber')
]);
}
public function scopeFilterHasLightSaber($query, $value)
{
$query->whereHas('weapons', function ($query) use ($value) {
$query->where('weapons.name', $value ? '=' : '<>', 'Light Saber');
});
}
}