a laravel wrapper for the flywheel package
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
$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.
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.
If you want to return a laravel response object with application/json headers then you can run
of course you can always pass the variable into a Blade template
return view('template.name', compact('docs'));
Send a pull request!