You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.3 KiB

<?php
/**
* Created by Error202
* Date: 09.07.2018
*/
namespace core\entities\menu;
use core\behaviors\LanguageBehavior;
use yii\db\ActiveRecord;
/**
* Class Menu
* @package core\entities
*
* @property integer $id
*
* @method ActiveRecord findTranslation(string $language)
* @method void saveTranslations($translations)
*
* @property ActiveRecord[] translations
* @property ActiveRecord[] translation
*
* @property MenuItem[] $items
*/
class Menu extends ActiveRecord
{
public $_form;
public static function create($form): self
{
$menu = new static();
$menu->_form = $form;
return $menu;
}
public function edit($form): void
{
$this->_form = $form;
}
public static function tableName(): string
{
return '{{%menu}}';
}
public function getItems()
{
return $this->hasMany(MenuItem::class, ['menu_id' => 'id'])->orderBy(['sort' => SORT_ASC]);
}
public function behaviors()
{
return [
[
'class' => LanguageBehavior::class,
'virtualClassName' => 'MenuVirtualTranslate',
'translatedLanguages' => \Yii::$app->params['translatedLanguages'],
'relativeField' => 'menu_id',
'tableName' => "{{%menu_lng}}",
'attributes' => ['name'],
'defaultLanguage' => \Yii::$app->params['defaultLanguage'],
],
];
}
/*public static function find()
{
return new LanguageTranslateQuery(get_called_class());
}*/
}