2015-09-09 09:28:47 +00:00
|
|
|
<?php namespace Database\Tester\Models;
|
|
|
|
|
|
|
|
|
|
use Model;
|
|
|
|
|
|
|
|
|
|
class Post extends Model
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* @var string The database table used by the model.
|
|
|
|
|
*/
|
|
|
|
|
public $table = 'database_tester_posts';
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var array Guarded fields
|
|
|
|
|
*/
|
|
|
|
|
protected $guarded = ['*'];
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var array Fillable fields
|
|
|
|
|
*/
|
|
|
|
|
protected $fillable = [];
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var array Relations
|
|
|
|
|
*/
|
|
|
|
|
public $belongsTo = [
|
|
|
|
|
'author' => 'Database\Tester\Models\Author',
|
|
|
|
|
];
|
|
|
|
|
|
2016-01-24 23:15:58 +00:00
|
|
|
public $morphMany = [
|
|
|
|
|
'event_log' => ['Database\Tester\Models\EventLog', 'name' => 'related', 'delete' => true, 'softDelete' => true],
|
|
|
|
|
];
|
|
|
|
|
|
2016-04-04 14:03:09 +00:00
|
|
|
public $morphOne = [
|
|
|
|
|
'meta' => ['Database\Tester\Models\Meta', 'name' => 'taggable'],
|
|
|
|
|
];
|
2015-09-18 19:36:58 +00:00
|
|
|
}
|
|
|
|
|
|
2016-01-25 04:39:46 +00:00
|
|
|
class NullablePost extends Post
|
|
|
|
|
{
|
|
|
|
|
use \October\Rain\Database\Traits\Nullable;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var array Guarded fields
|
|
|
|
|
*/
|
|
|
|
|
protected $guarded = [];
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var array List of attributes to nullify
|
|
|
|
|
*/
|
|
|
|
|
protected $nullable = [
|
|
|
|
|
'author_nickname',
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
2015-09-18 19:36:58 +00:00
|
|
|
class SluggablePost extends Post
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
use \October\Rain\Database\Traits\Sluggable;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var array Guarded fields
|
|
|
|
|
*/
|
|
|
|
|
protected $guarded = [];
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var array List of attributes to automatically generate unique URL names (slugs) for.
|
|
|
|
|
*/
|
|
|
|
|
protected $slugs = [
|
2016-02-20 06:15:58 +00:00
|
|
|
'slug' => 'title',
|
|
|
|
|
'long_slug' => ['title', 'description']
|
2015-09-18 19:36:58 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class RevisionablePost extends Post
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
use \October\Rain\Database\Traits\Revisionable;
|
2016-01-13 09:11:39 +00:00
|
|
|
use \October\Rain\Database\Traits\SoftDelete;
|
2015-09-18 19:36:58 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var array Guarded fields
|
|
|
|
|
*/
|
|
|
|
|
protected $guarded = [];
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var array Dates
|
|
|
|
|
*/
|
|
|
|
|
protected $dates = ['published_at', 'deleted_at'];
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var array Monitor these attributes for changes.
|
|
|
|
|
*/
|
|
|
|
|
protected $revisionable = [
|
|
|
|
|
'title',
|
|
|
|
|
'slug',
|
|
|
|
|
'description',
|
|
|
|
|
'is_published',
|
|
|
|
|
'published_at',
|
|
|
|
|
'deleted_at'
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var int Maximum number of revision records to keep.
|
|
|
|
|
*/
|
|
|
|
|
public $revisionableLimit = 8;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var array Relations
|
|
|
|
|
*/
|
|
|
|
|
public $morphMany = [
|
|
|
|
|
'revision_history' => ['System\Models\Revision', 'name' => 'revisionable']
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The user who made the revision.
|
|
|
|
|
*/
|
|
|
|
|
public function getRevisionableUser()
|
|
|
|
|
{
|
|
|
|
|
return 7;
|
|
|
|
|
}
|
|
|
|
|
|
2016-01-24 23:15:58 +00:00
|
|
|
}
|
2017-03-21 20:31:02 +00:00
|
|
|
|
|
|
|
|
class ValidationPost extends Post
|
|
|
|
|
{
|
|
|
|
|
use \October\Rain\Database\Traits\Validation;
|
|
|
|
|
|
|
|
|
|
public $rules = [
|
|
|
|
|
'title' => 'required|min:3|max:255',
|
|
|
|
|
'slug' => ['required', 'regex:/^[a-z0-9\/\:_\-\*\[\]\+\?\|]*$/i', 'unique:database_tester_posts'],
|
|
|
|
|
];
|
|
|
|
|
}
|