PHP code example of sbarre / eloquent-versioned
1. Go to this page and download the library: Download sbarre/eloquent-versioned library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
sbarre / eloquent-versioned example snippets
$table->integer('model_id')->unsigned()->default(1);
$table->integer('version')->unsigned()->default(1);
$table->integer('is_current_version')->unsigned()->default(1);
$table->index('is_current_version');
$table->index('model_id');
$table->index('version');
$table->dropColumn(['model_id','version','is_current_version']);
$table->dropIndex(['model_id','version','is_current_version']);
use EloquentVersioned\Traits\Versioned;
$project = Project::create([
'name' => 'Project Name',
'description' => 'Project description goes here'
])->fresh();
print_r($project->toArray());
Array
(
[id] => 1
[version] => 1
[name] => Project Name
[description] => Project description goes here
[created_at] => 2015-05-24 17:16:05
[updated_at] => 2015-05-24 17:16:05
)
Array
(
[id] => 1
[model_id] => 1
[version] => 1
[is_current_version] => 1
[name] => Updated project Name
[description] => Project description goes here
[created_at] => 2015-05-24 17:16:05
[updated_at] => 2015-05-24 17:16:05
)
$project->name = 'Updated project name';
$project->save();
print_r($project->toArray());
Array
(
[id] => 1
[version] => 2
[name] => Updated project Name
[description] => Project description goes here
[created_at] => 2015-05-24 17:16:05
[updated_at] => 2015-05-24 17:16:45
)
Array
(
[id] => 1
[model_id] => 1
[version] => 2
[is_current_version] => 1
[name] => Updated project Name
[description] => Project description goes here
[created_at] => 2015-05-24 17:16:05
[updated_at] => 2015-05-24 17:16:45
)
Array
(
[id] => 2
[model_id] => 1
[version] => 1
[is_current_version] => 0
[name] => Project Name
[description] => Project description goes here
[created_at] => 2015-05-24 17:16:05
[updated_at] => 2015-05-24 17:16:05
)
$project->saveMinor(); // doesn't create a new version
$projectVersions = Project::withOldVersions()->find(1);
$oldVersions = Project::onlyOldVersions()->find(1);
$current = Project::find(1);
$previous = $current->getPreviousModel();
$next = $previous->getNextModel();
// $next == $current