【问题标题】:Yii2: uniqueID and id modules propertiesYii2:uniqueID 和 id 模块属性
【发布时间】:2015-07-22 22:14:54
【问题描述】:

Class yii\base\Module 有 2 个属性:iduniqueId。前者“在具有相同父级的其他模块中唯一标识此模块”,而后者 - 只是唯一的 id。但我仍然不明白差异。为什么我们需要 id 来识别模块,尤其是从具有相同父模块的模块中,如果有 uniqueId,也可以识别模块?向我展示一个例子会很好,它揭示了对这两个属性的需求。

【问题讨论】:

    标签: php yii yii2 yii-modules


    【解决方案1】:

    模块id是模块的相对ID,当没有父模块时 模块iduniqueId 一致。但是,如果您在其他模块中使用嵌套模块(一个或多个),那么仍然需要能够分配模块的标识符(他的名字)。此名称是使用 ID 分配的,该 ID 对应于 config/main.php 中的条目。作为框架的一部分,管理每个嵌套模块的绝对标识的需要由UniqueId 执行。 UniqueId 是只读的,因为他的正确构造是由框架管理的

    【讨论】:

    • 所以,你想说,id 是用户所需要的,UniqueId - 是框架所需要的,对吧?
    • 在某种程度上是的。 ID 由你分配,UniqueId 由 Yii2 框架生成。
    • 但是我不明白,你说“模块id是模块的相对ID”是什么意思。我更改了嵌套模块的id 属性(在应用程序中的 config/web.php 中)并输出属性iduniqueId 鉴于这个模块:后者也发生了变化!请给我一个例子,当这两个属性不相同时。
    • 尝试构建一个嵌套模块并回显 id 和 UniqueId。例如。用户(父)管理员子级和仅主管理员。并尝试回显模块 ID,第一个管理员的 UniqeID 是 'user/admin,第二个管理员是 admin
    • 只是一个澄清。如果你不使用嵌套模块,这种类型的学习是不重要的,也没有实际用途。因为这两个值(您分配用于标识模块的值和框架生成的值以避免不同级别中相同名称之间的歧义)重合
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2016-11-16
    相关资源
    最近更新 更多