在你的代码中,attr
数据字段是通过关联查询获取的,如果attr
字段返回的数据为空,可能有以下几个原因:
数据库中没有对应的GoodsAttrForm
记录:你可以通过数据库查询,看看在GoodsAttrForm
表中,是否存在与goods_id
相关的记录。
关联查询条件不满足:你使用的是hasMany
关联查询,所以需要确认GoodsAttrForm
模型中的goods_id
是否存在并且与主查询模型的goods_id
匹配。
查询条件限制:在关联查询中,你添加了查询条件->where(['at.is_delete' => Constants::IS_DELETE])
,这可能会限制查询结果。请确认数据库中的is_delete
字段是否满足这个条件。
你可以尝试在getAttr()
函数中先移除查询条件,然后看是否能获取到数据。如果还是获取不到数据,可以尝试直接在数据库中执行SQL查询,检查是否存在相应的记录。
另外,你的attr
查询是在$params['is_details'] == 2
时才添加到主查询中的,因此你需要确认is_details
参数是否为2。
以上就是可能的原因和解决方式,希望可以帮助你。
@vipluosong #6楼 用 Yii2 的 HasOne
和 HasMany
具体可以查询文档
SearchModel
就配置相应的 'relations' => ['comment' => []],
前台入口文件在这里 https://github.com/iiYii/getyii/tree/master/frontend/web
getyii 用的是 Yii2 的高级模板,使用 php init
会生成入口文件。
因为以前的 Google fonts 本呢个访问,所以我在 composer install
的时候做了一个转换,但是 fonts.css.network
应该是不能用了,我刚才更新了代码解决了这个问题,你更新一下代码,重新执行 composer install
即可解决
针对最新版 phpdotenv 要这样使用:
修改 web.php 文件:之后代码如下:
<?php
require __DIR__ . '/../vendor/autoload.php';
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../');
$dotenv->load();
defined('YII_DEBUG') or define('YII_DEBUG', getenv('YII_DEBUG') === 'true');
defined('YII_ENV') or define('YII_ENV', getenv('YII_ENV') ?: 'prod');
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
$config = require __DIR__ . '/../config/web.php';
(new yii\web\Application($config))->run();
其他不变
在 /console/config/main.php#L17 新增下面代码试试:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'scriptUrl' => '',
'hostInfo'=>'',
'rules' => [
],
],