Create meta table and model

This commit is contained in:
James Brooks
2017-06-13 19:23:53 +01:00
parent bf2b45e2f7
commit 4b9e0141e8
2 changed files with 114 additions and 0 deletions

68
app/Models/Meta.php Normal file
View File

@@ -0,0 +1,68 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Models;
use AltThree\Validator\ValidatingTrait;
use Illuminate\Database\Eloquent\Model;
/**
* This is the meta model class.
*
* @author James Brooks <james@alt-three.com>
*/
class Meta extends Model
{
use ValidatingTrait;
/**
* The attributes that should be casted to native types.
*
* @var string[]
*/
protected $casts = [
'id' => 'int',
'key' => 'string',
'value' => 'json',
'meta_id' => 'int',
'meta_type' => 'string',
];
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'id' => 'nullable|int|min:1',
'key' => 'required|string',
'value' => 'nullable',
'meta_id' => 'required|int',
'meta_type' => 'required|string',
];
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'meta';
/**
* Get all of the owning meta models.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphTo
*/
public function meta()
{
return $this->morphTo();
}
}

View File

@@ -0,0 +1,46 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMetaTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('meta', function (Blueprint $table) {
$table->increments('id');
$table->string('key')->index();
$table->string('value');
$table->integer('meta_id')->unsigned();
$table->string('meta_type');
$table->timestamps();
$table->index(['meta_id', 'meta_type']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('meta');
}
}