我在控制器中有一个动作,它必须像“工厂小部件”一样工作:
public function actionRenderWidget($widget)
{
$widgetClass = 'My'.$widget.'Widget';
return $widgetClass::widget();
}
实现类似的东西的正确方法是什么?
答案 0 :(得分:2)
您应该只使用带有命名空间的类名(不需要使用@Component({
moduleId: module.id,
selector: 'my-app',
templateUrl: DynamicUrl, //Load DynamicUrl here
styleUrls: ['app.component.css']
})
export class AppComponent{
var DynamicUrl= 'app.component.html';
// ideally this template name will be pulled from the server.
}
),例如:
call_user_func()
答案 1 :(得分:0)
//example
$className = 'yii\jui\DatePicker';
return call_user_func($className .'::widget');
OR
$config = [];
$widget = Yii::createObject($className, $config);
return call_user_func([$widget, 'widget']);