clrghouz/app/Traits/Single.php

25 lines
466 B
PHP

<?php
/**
* Add eloquent queries single(), singleOrNew()
*/
namespace App\Traits;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\ModelNotFoundException;
trait Single
{
private static function bootSingle(): void
{
// When a query should return 1 object, or NULL if it doesnt
Builder::macro('single',function () {
$result = $this->get();
if ($result->count() === 1)
return $result->first();
return NULL;
});
}
}