|
|
@ -3,6 +3,7 @@ namespace ProVM\Common\Define;
|
|
|
|
|
|
|
|
|
|
|
|
use \Model as BaseModel;
|
|
|
|
use \Model as BaseModel;
|
|
|
|
use ProVM\Common\Alias\Model as ModelInterface;
|
|
|
|
use ProVM\Common\Alias\Model as ModelInterface;
|
|
|
|
|
|
|
|
use ProVM\Common\Factory\Model as ModelFactory;
|
|
|
|
|
|
|
|
|
|
|
|
abstract class Model extends BaseModel implements ModelInterface {
|
|
|
|
abstract class Model extends BaseModel implements ModelInterface {
|
|
|
|
const SELF_KEY = 'self_key';
|
|
|
|
const SELF_KEY = 'self_key';
|
|
|
@ -12,7 +13,7 @@ abstract class Model extends BaseModel implements ModelInterface {
|
|
|
|
const SELF_CONNECT_KEY = 'self_connect_key';
|
|
|
|
const SELF_CONNECT_KEY = 'self_connect_key';
|
|
|
|
const SIBLING_CONNECT_KEY = 'sibling_connect_key';
|
|
|
|
const SIBLING_CONNECT_KEY = 'sibling_connect_key';
|
|
|
|
|
|
|
|
|
|
|
|
public function getTable() {
|
|
|
|
public function getTable(): string {
|
|
|
|
return static::$_table;
|
|
|
|
return static::$_table;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -60,10 +61,10 @@ abstract class Model extends BaseModel implements ModelInterface {
|
|
|
|
], [
|
|
|
|
], [
|
|
|
|
Model::PARENT_KEY => 'id'
|
|
|
|
Model::PARENT_KEY => 'id'
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
$parent_table = (new $parent_class())->getTable();
|
|
|
|
$parent_table = (new $parent_model_class())->getTable();
|
|
|
|
return $this->factory
|
|
|
|
return $this->factory
|
|
|
|
->find($parent_model_class)
|
|
|
|
->find($parent_model_class)
|
|
|
|
->wherer([
|
|
|
|
->where([
|
|
|
|
[
|
|
|
|
[
|
|
|
|
$relation_definitions[Model::PARENT_KEY],
|
|
|
|
$relation_definitions[Model::PARENT_KEY],
|
|
|
|
$this->{$relation_definitions[Model::SELF_KEY]}
|
|
|
|
$this->{$relation_definitions[Model::SELF_KEY]}
|
|
|
@ -81,7 +82,7 @@ abstract class Model extends BaseModel implements ModelInterface {
|
|
|
|
Model::SELF_KEY => 'id',
|
|
|
|
Model::SELF_KEY => 'id',
|
|
|
|
Model::SIBLING_KEY => 'id'
|
|
|
|
Model::SIBLING_KEY => 'id'
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
$sibling_table = (new $sibling_class())->getTable();
|
|
|
|
$sibling_table = (new $sibling_model_class())->getTable();
|
|
|
|
return $this->find($sibling_model_class)
|
|
|
|
return $this->find($sibling_model_class)
|
|
|
|
->select([
|
|
|
|
->select([
|
|
|
|
[
|
|
|
|
[
|
|
|
|