1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- namespace common\models;
- use common\helpers\Util;
- use Yii;
- /**
- * This is the model class for table "{{%nav}}".
- *
- * @property integer $id
- * @property string $key
- */
- class Nav extends \yii\db\ActiveRecord
- {
- /**
- * @inheritdoc
- */
- public static function tableName()
- {
- return '{{%nav}}';
- }
- /**
- * @inheritdoc
- */
- public function rules()
- {
- return [
- [['key', 'title'], 'required'],
- [['key', 'title'], 'string', 'max' => 128],
- ];
- }
- /**
- * @inheritdoc
- */
- public function attributeLabels()
- {
- return [
- 'id' => Yii::t('common', 'ID'),
- 'key' => Yii::t('common', 'Key'),
- 'title' => Yii::t('common', 'Title'),
- ];
- }
- public function getActiveItem()
- {
- return $this->hasMany(NavItem::className(), ['nav_id' => 'id'])->where(['status' => 1]);
- }
- public static function getItems($key)
- {
- $nav = self::find()->where(['key' => $key])->one();
- if ($nav == null) {
- return [];
- }
- $items = NavItem::find()->select('title label, url, target')
- ->where(['nav_id' => $nav->id, 'status' => 1])
- ->orderBy(['order' => SORT_ASC])
- ->asArray()->all();
- return array_map(function($value){
- $value['url'] = Util::parseUrl($value['url']);
- if ($value['target'] == 1) {
- $value['linkOptions'] = ['target' => '_blank'];
- }
- return $value;
- }, $items);
- }
- }
|