get(ArticleServiceInterface::ServiceName); /** @var CategoryServiceInterface $categoryService */ $categoryService = Yii::$app->get(CategoryServiceInterface::ServiceName); return [ 'index' => [ 'class' => IndexAction::className(), 'data' => function($query) use($service, $categoryService){ $result = $service->getList($query, ['type'=>Article::ARTICLE]); return [ 'dataProvider' => $result['dataProvider'], 'searchModel' => $result['searchModel'], 'categories' => ArrayHelper::getColumn($categoryService->getLevelCategoriesWithPrefixLevelCharacters(), "prefix_level_name"), 'frontendURLManager' => $service->getFrontendURLManager() ]; } ], 'view-layer' => [ 'class' => ViewAction::className(), 'data' => function($id) use($service){ return [ 'model' => $service->getDetail($id), ]; }, ], 'create' => [ 'class' => CreateAction::className(), 'doCreate' => function($postData) use($service){ return $service->create($postData, ['scenario'=>ArticleServiceInterface::ScenarioArticle]); }, 'data' => function($createResultModel, CreateAction $createAction) use($service, $categoryService){ return [ 'model' => $createResultModel === null ? $service->newModel(['scenario'=>ArticleServiceInterface::ScenarioArticle]) : $createResultModel['articleModel'], 'contentModel' => $createResultModel === null ? $service->newArticleContentModel() : $createResultModel['articleContentModel'] , 'categories' => ArrayHelper::getColumn($categoryService->getLevelCategoriesWithPrefixLevelCharacters(), "prefix_level_name"), ]; }, ], 'update' => [ 'class' => UpdateAction::className(), 'doUpdate' => function($id, $postData) use($service){ return $service->update($id, $postData, ['scenario'=>ArticleServiceInterface::ScenarioArticle]); }, 'data' => function($id, $updateResultModel) use($service, $categoryService){ return [ 'model' => $updateResultModel === null ? $service->getDetail($id, ['scenario'=>ArticleServiceInterface::ScenarioArticle]) : $updateResultModel['articleModel'], 'contentModel' => $updateResultModel === null ? $service->getArticleContentDetail($id) : $updateResultModel['articleContentModel'], 'categories' => ArrayHelper::getColumn($categoryService->getLevelCategoriesWithPrefixLevelCharacters(), "prefix_level_name"), ]; } ], 'delete' => [ 'class' => DeleteAction::className(), 'doDelete' => function($id) use($service){ return $service->delete($id); }, ], 'sort' => [ 'class' => SortAction::className(), 'doSort' => function($id, $sort) use($service){ return $service->sort($id, $sort, ['scenario'=>ArticleServiceInterface::ScenarioArticle]); } ], ]; } }