<?php
namespace Koselig\Models;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Post extends Model
{
public $table = DB_PREFIX . 'posts';
public $primaryKey = 'ID';
public $timestamps = false;
public $dates = ['post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt'];
public function scopePostType($query, $name)
{
return $query->where('post_type', $name);
}
public function scopePublished($query)
{
return $query->where('post_status', 'publish');
}
public function meta()
{
return $this->hasMany(Meta::class);
}
public function getMeta($key = null)
{
$meta = $this->meta;
if (is_array($key)) {
$meta = $meta->whereIn('meta_key', $key);
} elseif (is_string($key)) {
$meta = $meta->where('meta_key', $key)->first();
return $meta ? $meta->meta_value : null;
}
return $meta->mapWithKeys(function ($item) {
return [$item->meta_key => $item->meta_value];
})->all();
}
public function author()
{
return $this->belongsTo(User::class, 'post_author');
}
}