yii2 – 如何在Yii 2中创建BaseController扩展Controller
作为标题,我将在Yii 2中创建自定义控制器并覆盖核心控制器,
而贝娄是我的代码. / create BaseController,我把这个文件放在root / components中./ namespace yiibase; use Yii; class BaseController extends Controller{ public function init() { parent::init(); } } /* Extends BaseController.*/ namespace appcomponents; use Yii; class UsersController extends BaseController { /* more function is here.*/ public actionIndex(){ echo _FUNCTION_; } } 我改变了更多的方式,但这不起作用,PLZ帮助我.谢谢大家.
您应首先阅读约
namespaces in PHP,然后了解Yii 2使用命名空间的方式以及它在您使用的特定应用程序(基本/高级)中的组织方式.
您想要将哪种功能添加到控制器?大多数情况下,最好覆盖特定的控制器(例如,对于web,它将是yiiwebController)而不是基类. 假设您使用的是基本应用程序,代码应如下所示: BaseController namespace appcomponents; class BaseController extends yiiwebController { public function init() { parent::init(); } } UserController的 namespace appcontrollers; class UserController extends appcomponentsBaseController { public actionIndex() { // ... } } 注意UserController如何扩展自定义BaseController.如果您将所有应用程序的控制器扩展为BaseController,则可以在所有应用程序的控制器上使用相同的功能/功能. 为什么?假设您希望整个前端需要登录.通常,您必须手动修改每个控制器中的规则.您可以在BaseController中声明规则以使所有内容都需要登录,并排除登录,错误,注册以及允许公共访问所需的任何其他页面. Yii2新手的其他东西应该知道.在“高级”模板中,您实际上有多个应用. “前端”和“后端”是他们自己的应用程序.您实际上可以复制“前端”(或“后端”)目录,并将其命名为“mainsite”并拥有第3个应用程序(只需搜索并将“frontend”的所有实例重命名为“mainsite”.在“环境”目录中,您可以复制前端,将其命名为“mainsite”并对其进行修改以满足您的需求,因此如果需要,可以通过init合并文件.您还需要编辑环境/ index.php以添加您自己的初始化环境. “console”实际上也是一个应用程序,但不是用于Web访问,而是用于通过命令行进行访问,通常用于处理cron作业或修剪旧数据等用途.也许你提供网络托管,在“控制台”是你可以添加代码来创建他们的托管帐户.我很少使用控制台,但它可能很有用.
我要提到的最后一件事是你可以随心所欲地创建自己的应用程序! Yii2框架不是您的基本或高级应用程序,它实际上在您的供应商目录中(通过Composer安装):)您正在使用的文件实际上只是Yii为您铺设的方式.按照他们的行为,您可以根据需要创建自己的文件结构.你可以废弃它,并从头开始创建你自己的Yii应用程序(根本不使用高级或基本!).不要被限制为基本或高级! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |