如何在前端和后端使用模型或模块

时间:2015-03-06 11:12:31

标签: yii2 yii2-advanced-app

任何人都可以在Yii2高级模板中指导如何在前端和后端使用模型。

如果我想在前端和后端使用模块,我该怎么办?

我已经尝试过将模型放在一起。但我无法访问它。我是yii2的新手,所以详细的指南会有所帮助。

2 个答案:

答案 0 :(得分:10)

一般而言,放置它的位置并不重要。

高级模板 常用文件夹完全存在于此目的。

例如,创建User模型并将其放在common\models文件夹中:

<?php

namespace common\models;

use yii\db\ActiveRecord;

class User extends ActiveRecord
{
    ...
}

无需特殊配置。

然后你可以这样使用它:

use common\models\User;

User::find()->...

common\models\User::find()->...

与模块相同,只需将其内容放在common\modules\users中即可。 Common文件夹适用于常用类。

另请查看namespaces的官方PHP文档。

答案 1 :(得分:2)

通过将模块放在公共文件夹中,可以通过模块方法使模型和控制器和视图可重用。 分步指南如下:

  1. 在任何一端(后端或前端)制作模块“order
  2. 共同创建一个新文件夹“modules”,并将 剪切/粘贴 订单模块从后端/前端添加到此新“modules “文件夹
  3. 打开Module.php并将命名空间重命名为“common\modules\order”,并将$controllerNamespace变量重命名为

    public $ controllerNamespace ='common \ modules \ order \ controllers';

  4. 将DefaultController.php类的命名空间重命名为“common\modules\order

  5. 将此新模块添加到前端和后端的配置文件(config/main.php)中,如下所示

    'modules' => [
            'order' => [
                'class' => 'common\modules\order\Module',
            ],
        ],
        'components' => [
    .
    .
    .
    
  6. 现在您可以像这样从前端和后端访问可重复使用的订单模块

  7. mysite/frontend/web/index.php?r=order
    mysite/backend/web/index.php?r=order