get(AdServiceInterface::ServiceName); return [ 'index' => [ 'class' => IndexAction::className(), 'data' => function($query)use($service){ /** @var array $query query params($_GET) */ $result = $service->getList($query); return [ 'dataProvider' => $result['dataProvider'], 'searchModel' => $result['searchModel'], ]; } ], 'view-layer' => [ 'class' => ViewAction::className(), 'data' => function($id)use($service){ /** string|int $id primary key value,usually column `id` value */ return [ 'model' => $service->getDetail($id), ]; }, ], 'create' => [ 'class' => CreateAction::className(), 'doCreate' => function($postData) use($service){ /** @var $postData $_POST data */ return $service->create($postData); }, 'data' => function($createResultModel, CreateAction $createAction)use($service){ /** * same path(`/path/create`) have two HTTP method * - GET for display create page * - POST execute a create operation(write data to database), then redirect to index or show a create error * * if $createResultModel equals null means that is a GET request, need to show create page, * otherwise means POST request, $createResultModel be the model of created(maybe contains data validation error) */ $model = $createResultModel === null ? $service->newModel() : $createResultModel; return [ 'model' => $model, ]; } ], 'update' => [ 'class' => UpdateAction::className(), 'doUpdate' => function($id, $postData, UpdateAction $updateAction) use($service){ return $service->update($id, $postData); }, 'data' => function($id, $updateResultModel) use($service){ /** * same path(`/path/update`) have two HTTP method * - GET for display update page * - POST execute a update operation(write data to database), then redirect to index or show a update error * * if $updateResultModel equals null means that is a GET request, need to show update page, * otherwise means POST request, $updateResultModel be the model of updated(maybe contains data validation error) */ $model = $updateResultModel === null ? $service->getDetail($id) : $updateResultModel; return [ 'model' => $model, ]; } ], 'delete' => [ 'class' => DeleteAction::className(), 'doDelete' => function($id)use($service){ /** string|int $id primary key value,usually column `id` value */ return $service->delete($id); }, ], 'sort' => [ 'class' => SortAction::className(), 'doSort' => function($id, $sort)use($service){ /** string|int $id primary key value,usually column `id` value */ /** int $sort sort value */ return $service->sort($id, $sort); }, ], ]; } }