首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自控制台前端的Yii2高级模板使用模型

来自控制台前端的Yii2高级模板使用模型
EN

Stack Overflow用户
提问于 2018-02-18 05:15:31
回答 3查看 796关注 0票数 2

我前面有一长串模特名单。其中有些函数需要在批处理中运行。因为这个控制台很好。

我可以通过复制代码来包括模型,但是这不是一种很好的方法。

我正在寻找一种从控制台命令的前端子模块导入模型的方法,这样我就可以在一个地方进行更改。

澄清,的标准方式包括

use app\models\Mymodelname;

在控制台\模型中,将导致以下错误

‘'Class’app\model\Mymodelname‘not’

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-18 23:22:00

代码语言:javascript
复制
use app\models\Mymodelname;

以前没有使用过这个包含语句。我更喜欢按原样使用前端/后端。如果我不得不做一个疯狂的猜测,这会在控制台内寻找模型。@app是当前应用程序的别名。

通常,我会保留一个以上的应用程序所使用的任何东西。正如您所指出的,维护相同代码的两个副本并不是一个好做法。

如果不使用公共选项,请直接使用frontend\models\Mymodelname

票数 2
EN

Stack Overflow用户

发布于 2018-02-18 05:51:44

我不知道您是否有两个独立的应用程序,或者可以从中受益,因为您已经在使用子模块,但是根据您希望使用一些控制台命令来分离关注点的愿望,这可能是有利的。

如果您使用composer来管理您的依赖项,那么您可以在git中创建一个单独的存储库,并在包含这些常见模型的项目中添加一个新的依赖项。

然后,在两个项目中包括您的依赖项。这在开发过程中带来了一些麻烦,因为两个应用程序都有这种依赖性,有时也会令人沮丧;我已经以这种方式在多个区间laravel项目之间共享了共同的功能,并取得了很大的成功。

目前,您似乎正在使用子模块,因此这可能需要重组,这可能是困难的,也可能是不可能的。

如果要保留子模块,另一种选择是将公共模型保持在更高的级别(而不是在子模块内),这样您就可以将模型导入两个子模块并在两个地方使用它们。我与yii1.1.16共享了模块间的通用模型,几年来使用了这种策略,并取得了很大的成功。

这两种选择都有各自的优势,所以要仔细权衡你想要的结果。请随时要求澄清。

How to add private github repository as Composer dependency

票数 1
EN

Stack Overflow用户

发布于 2018-02-19 13:15:40

@app是当前正在运行的应用程序的别名。它可以是frontendbackendconsole。如果希望跨应用程序访问模型,请将其添加到commen\models中。或者将app\models更改为frontend\models。这样,您就可以在控制台上访问frontend模型。更好的方法是把它转移到common\models

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48848697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档