This is a wrapper class for the Jamesmoss/flywheel package.
This is a facade that can be used beside the default laravel database structure. Since this doesn't override Laravel's core database functionality you can use both at the same time.
composer require allenjd3\laravel-flywheel
Then add to your config/app file under application providers
'providers' => [
...
/*
* Package Service Providers...
*/
Allenjd3\Flywheel\FlywheelServiceProvider::class,
...
]
If you want to use the Facade then add this to your aliases array
'aliases' => [
...
'Flywheel' => Allenjd3\Flywheel\facades\Flywheel::class,
...
]
This method is optional if you want to change either the table name or storage path
Example- (optional)
$flywheel = Flywheel::config($name, $path);
$flywheel->findAll();
This method creates a new Document and saves it to your path. You can use laravel validation on the request before running this.
$id = Flywheel::create($array)
This method updates a post. You must find the post by id before updating it.
$doc = Flywheel::findById($id);
$doc->param = "new value";
Flywheel::update($doc);
This method finds all documents within the given configuration path
$docs = Flywheel::findAll();
This method deletes a post that matches a given id.
Flywheel::delete($id)
This method returns a query object that can be chained
$docs = Flywheel::where('title', '==', 'Shiver Me Timbers')->get();
Get ends the queries and executes the result.
$docs = Flywheel::limit($count, $offset)->get();
$docs = Flywheel::orderBy('fieldname ASC|DESC')->get();
andWhere is a wrapper for additional where queries.
All types of queries, (where, limit, orderby, andWhere) can be chained before calling get. Example-
$docs = Flywheel::where('title','==','Most Excellent')
->limit(5,2)
->orderBy('title ASC')
->get();
If you only want to return a single document you can run first instead of get
$doc = Flywheel::where('title', '==', 'Most Excellent')->first();
All returned values can be returned and will return a json string.
return $docs;
If you want to return a laravel response object with application/json headers then you can run
return $docs->toJson();
or
return $docs->toArray();
of course you can always pass the variable into a Blade template
return view('template.name', compact('docs'));
Send a pull request!