this is a workflow package for laravel5

workflow, laravel


Workflow (Laravel5 Package)

thanks tao2581, If you need use to laravel 4, please add

"davin-bao/workflow": "v1.0"

Workflow package provides a simple way to add audit flow to Laravel5.

Quick start

Required setup

In the require key of composer.json file add the following

"davin-bao/workflow": "dev-master"

Run the Composer update comand

$ composer update

In your config/app.php add 'DavinBao\Workflow\WorkflowServiceProvider' to the end of the $providers array

'providers' => array(



At the end of config/app.php add 'Workflow' => 'DavinBao\Workflow\WorkflowFacade' to the $aliases array

'aliases' => array(

    'App'        => 'Illuminate\Support\Facades\App',
    'Artisan'    => 'Illuminate\Support\Facades\Artisan',
    'Workflow'       => 'DavinBao\Workflow\WorkflowFacade',



Create Table

Now generate the Workflow migration

$ php artisan workflow:migration

It will generate the <timestamp>_workflow_setup_tables.php migration. You may now run it with the artisan migrate command: Open: <timestamp>_workflow_setup_tables.php change " {{ '<?php' }} " to " <?php " $ php artisan migrate

After the migration, workflow tables will be present.

Create Controllers

$ php artisan workflow:controllers

Create Routes

$ php artisan workflow:routes

Link the Model

    class Entry extends Eloquent {
      use \DavinBao\Workflow\HasFlowForResource;

Add two function for audit log,Audit Flow will record this resource's title and content

		public function getLogTitle()
			return $this->entry_title;
		public function getLogContent()
			return $this->entry_content;

Link the Controller

		class AdminEntryController extends AdminController {
				use \DavinBao\Workflow\HasFlowForResourceController;

Add roles for this controller

		Route::get('entrys/{entry}/binding', 'AdminEntrysController@getBindingFlow');
		Route::post('entrys/{entry}/binding', 'AdminEntrysController@postBindingFlow');
		Route::get('entrys/{entry}/audit', 'AdminEntrysController@getAudit');
		Route::post('entrys/{entry}/audit', 'AdminEntrysController@postAudit');

Modify config

Set the propertly values to the config/auth.php and davin-bao/workflow/src/config/config.php .


Get is binding audit flow

    if(isset($entry->isBinding)) {///is binding, do something }

Get resource audit status


Show flow Graph, show this resource audit flow status

{{ Workflow::makeFlowGraph($entry->flow(), $entry->orderID()) }}

Show audit flow all details

{{ Workflow::makeAuditDetail($entry) }}

Need I audit, show audit button

    if(isset($entry->isBinding) && $entry->isMeAudit()) { /// show audit button }