added uuid query scope
This commit is contained in:
parent
ddea4dd573
commit
70cd832876
14
README.md
14
README.md
@ -102,6 +102,20 @@ And to retrieve meta information, use the 'read' method.
|
||||
$post->read('author'); //returns 'Bob Saget'
|
||||
```
|
||||
|
||||
### Query Builder
|
||||
|
||||
Let's say you need to retrieve the post that has a certain UUID (maybe you gave it out in a url or something)
|
||||
|
||||
It's super easy to search for it:
|
||||
``` php
|
||||
Post::withUuid($uuid)->first();
|
||||
```
|
||||
|
||||
It is completely integrated into the query builder, so you can still do stuff like:
|
||||
``` php
|
||||
Post::withUuid($uuid)->pluck('username');
|
||||
Post::withUuid($uuid)->firstOrFail();
|
||||
```
|
||||
|
||||
## Credits
|
||||
|
||||
|
@ -77,4 +77,13 @@ interface MetaContract
|
||||
* @return void
|
||||
*/
|
||||
public function setRawUuid( \Ramsey\Uuid\Uuid $uuid );
|
||||
|
||||
/**
|
||||
* Get the model that has this UUID.
|
||||
*
|
||||
* @param string $uuid
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
public static function withUuid( $uuid );
|
||||
}
|
11
src/Meta.php
11
src/Meta.php
@ -127,6 +127,17 @@ class Meta extends Model implements FoundationModel, MetaContract
|
||||
$this->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the model that has this UUID.
|
||||
*
|
||||
* @param string $uuid
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
public static function withUuid( $uuid ){
|
||||
return parent::where('uuid', $uuid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the UUID and Meta columns to the table.
|
||||
*
|
||||
|
@ -30,4 +30,15 @@ class MetaTest extends \PHPUnit_Framework_TestCase
|
||||
$model->setRawUuid($uuid);
|
||||
$this->assertEquals($uuid, $model->getUuid());
|
||||
}
|
||||
|
||||
public function testUuidQuery ()
|
||||
{
|
||||
$model = Meta::create([
|
||||
'meta' => serialize(['name' => 'Tony'])
|
||||
]);
|
||||
|
||||
$queried = Meta::withUuid($model->getUuid())->first();
|
||||
|
||||
$this->assertEquals($model->read('name'), $queried->read('name'));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user