问题标签 [yii2-advanced-app]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6121 浏览

php - 类似于 YII_DEBUG 和 YII_ENV 的 Yii2 中的全局变量应该放在哪里

我正在建立一个网站,它有一个名为市场的“子域”。所以网址将是marketplace.sample.com。我正在使用 Yii2 高级应用程序,并将以下代码添加到我位于前端/web 的 index.php 中。

这适用于我的环境,但是,我刚刚意识到 index.php 文件位于 Yii2 的 .gitignore 文件中,因为该文件是由 init 脚本创建的,因此对它的更改将被运行 init 覆盖。

无论如何,问题是:我应该把这段代码放在哪里,以便它可以提交并与开发团队的其他成员共享,并在推送代码时将其投入生产?

我试图将此代码放在 common/config/params.php 中,但是当我尝试访问变量以确定要使用哪个路由时,我不能,因为当前端/config/main.php 时 Yii 应用程序尚未初始化。 php 文件运行,我得到一个错误,我试图访问一个非对象的属性。

/frontend/config/main.php

/frontend/config/main.php (用参数代替)

第二个给出了我试图访问非对象属性的错误。

0 投票
1 回答
2247 浏览

namespaces - 命名空间不适用于 Codeception (Yii2)

我在 Yii2 中使用 Codeception 进行验收测试,并且无法访问我的模型,因为命名空间不适用于这些测试。

我的测试中有这个/_bootstrap.php

这在我的控制台/配置/主

这是想要的测试之一:

运行测试时出现此错误:

PHP 致命错误:在第 21 行的 /var/www/project/tests/acceptance/ListUserCest.php 中找不到类 'backend\models\User' 错误:找不到类 'backend\models\User'

请帮助我,我已经尝试了我所知道的一切

编辑

现在(在添加了 vitalik_74 推荐的行之后)我可以在测试中使用例如 \Yii 方法,但无需 Web 应用程序配置,只需控制台配置。我的意思是,我仍然不能使用 \backend\models\User 并且我也不能访问 Yii::$app->user 状态(例如,检查用户是否已登录)。

User 模型只是一个普通的 ActiveRecord 模型,带有他的 tableName、rules、attributeLabels 和一些关系方法,如 getProfile()。它适用于测试

0 投票
1 回答
1066 浏览

php - 使用 yii2-google-map-library 从数据库中显示多边形


当我尝试使用yii2-google-maps-library. 我有一个tb_wilayah带有字段的表格,(id, label, lat, lng)然后我尝试使用以下代码在地图上显示多边形:

不幸的是我有错误信息Argument 1 passed to dosamigos\google\maps\overlays\PolygonOptions::addCoord() must be an instance of dosamigos\google\maps\LatLng, array given, called in C:\xampp\htdocs\project\vendor\2amigos\yii2-google-maps-library\overlays\PolygonOptions.php on line 120 and defined

有人可以帮助我吗?或者如果有人可以提供教程,那将是一个真正的帮助。

0 投票
1 回答
480 浏览

yii2 - Yii2活动记录查询返回声明的变量而不是表属性

为什么当我从模型中检索记录时,它返回我声明的变量而不是表中的字段。

这是我的控制器功能

这是我模型的一部分。

这是示例输出..

可以说,它返回省、地区和city_code,这不是表中的属性,而只是一个声明的变量。我想像 si_title 一样检索。

在此处输入图像描述

0 投票
1 回答
1813 浏览

php - Yii2 - 使用了错误的用户模型类

我的应用程序建立在“高级”Yii2 应用程序模板上,我的User课程建立在Yii2-user模块上。

该应用程序似乎使用自定义User模型类dektrium\user\Module来处理注册,因为我添加的自定义字段在注册时存储在数据库中,使用register()供应商User类的方法来执行数据库持久性操作。

当我访问帐户设置页面时,使用/user/settings/account模型类用于显示User数据的操作实际上是common/model/User,如 using 所示get_class(),我不能使用自定义模型类中定义的任何新方法。

主配置文件。

以及SettingsForm具有 aUser作为属性的类。

module属性显示为自定义类型,User_user来自/common/models/User.

我是否错过了任何User对象应该属于自定义类的内容,以便我可以访问新的属性/方法?

0 投票
3 回答
2270 浏览

twitter-bootstrap - Yii2 Advanced - 扩展视图以添加自定义变量

我不确定我想要的是否是处理这个问题的最佳 Yii 解决方案。所以我愿意接受更好的解决方案。无论如何,最 Yii 的做法是什么。

我有一个左侧边栏,只需要向已登录的用户显示。这不是问题,我知道如何通过检查“Yii::$app->user->isGuest”来显示某些内容。

在特定页面上,即使他们已登录,我也不想要此边栏。例如,“联系我们”页面不需要左侧边栏。我真的不在乎它是否有侧边栏,但它正在抛弃 Bootstrap3 列。

它看起来很棒,位于页面中间,4 列宽。

但是,在我的 Yii main.php (frontend/views/layouts/main.php) 中,我有 2 个单独的布局,具体取决于用户是否登录。

如果是访客,则此代码显示全宽页面,如果用户已登录,则显示侧边栏。

在“联系我们”页面等页面上发生的情况是,由于侧边栏,表单被压缩了。正确的内容是“col-md-9”,当您将联系表格放入其中(具有“col-lg-4”)时,它在 9 列中仅占 4,导致它被压缩。

由于此页面(联系页面)应该是公开可见的(即:如果用户无法登录,他们将被搞砸并且无法联系支持),这两种情况都可能发生。登录的会员可能会查看它,从而形成皱缩的表格,或者看起来不错的客人可能会查看它。


我的方法是添加一个变量 $showSidebar。然后在contact.php 中有$showSidebar = false。该变量的默认操作将由 isGuest 设置,并且页面可以覆盖它以在每个页面的基础上关闭侧边栏。

我真的不希望对 isGuest 进行大量 if 检查来显示备用 div 或代码,所以我觉得这将是最好的方法。

如何扩展视图以添加我自己的变量?该文件位于 vendor/yiisoft/yii2/web/view 我认为..

这是 Yii2 高级模板。

PS:我愿意为我的问题提供更好的解决方案。我不想要黑客,而是最合适的 Yii 方法。

0 投票
1 回答
2639 浏览

php - phpstorm 和 Yii2 高级模板

我正在使用PhpStormYii2 高级模板。我看过所有的 Yii2 文档。一切安好。关于集成 Yii2 和 PhpStorm(两者都是我的最爱)存在一些问题,谷歌搜索并没有很好的解决方案。也许很多开发者都有同样的问题,所以我想在这里问:


  1. 我已经使用composer全局安装了codeception,然后使用codeception构建并运行了高级模板中包含的所有测试。一切都好。但是当我想在 PhpStorm 中编写新的 (frontend, backend, ...) 测试时,没有使用 codeception 的自动完成功能。此外,当您在 PhpStorm 中打开一些现有的默认测试(例如SignupCest.php文件)时,命名空间未定义,并且 PhpStorm 在主题类中找不到引用的方法!

有什么建议或解决方案吗?

更新

  1. 任何人都可以提供有关如何使用 Xdebug、PhpStorm 和 Chrome/Firefox 调试 yii2 项目的完整教程吗?虽然有一些关于调试纯 PHP 项目/脚本的教程,但在 yii2 上没有找到任何教程。
0 投票
1 回答
2733 浏览

yii2-advanced-app - YII 2:在选项 select2 kartik 小部件中添加新属性

我有使用 yii 2 的脚本:

以及 html 中的结果:

还有我的问题,如何在选项中添加属性“数据类型”?,我想这样:

如何?

0 投票
1 回答
1136 浏览

php - 如何在yii2中建立多个模型的形式?

我正在尝试创建一个使用多个模型实例并一次提交它们的表单(表格输入),我已经阅读 了 wiki 上的这篇文章yiiframework,但我想做的是构建一个包含来自的属性和属性的自定义模型多个模型然后在我的表单中使用这个模型。

[例子]

型号1

摩尔2

0 投票
2 回答
6787 浏览

yii2 - 带有多个控制器的 Yii2 Rest API 额外模式

我的 API 中有 2 个控制器。每个都定义了额外的模式。我的所有操作都可以正常工作,除了用户登录,这是在额外的模式中定义的。

用户/登录错误。请注意,它正在寻找 v1/user/view 操作

如果我在 urlManager 中注释掉 ID 令牌,则用户/登录操作有效,但我的其他路由失败。