我应该直接从视图 yii2 调用模型吗

2024-01-14

我有点困惑,因为在这里 他们直接调用模型,因此不通过控制器传递它。http://www.yiiframework.com/doc-2.0/guide-input-forms.html http://www.yiiframework.com/doc-2.0/guide-input-forms.html滚动到页面底部...

echo $form->field($model, 'product_category')->dropdownList(
    ProductCategory::find()->select(['category_name', 'id'])->indexBy('id')->column(),
    ['prompt'=>'Select Category']
);

以及这里的指南http://www.yiiframework.com/doc-2.0/guide-struct-views.html http://www.yiiframework.com/doc-2.0/guide-structure-views.html在底部再次有一个最佳实践部分和主题之一 is:(视图)不应包含执行数据库查询的代码。此类代码应该在模型中完成。

Thanks


我同意你对“最佳实践”的理解。我认为我们应该避免调用在视图内执行数据库查询的方法。另外,所有查询都已在模型中。因此,对我来说,在外面进行外部查询是没有意义的。

我使用 Yii2 框架(不是我创建的)处理了一些项目,我只是在这里进行了快速搜索。我遇到的唯一与此类似的情况就是当我们有一个表单或网格视图并尝试显示另一个模型的所有出现时。

在这种情况下,我更喜欢在模型中创建一个函数来处理这个问题。就像是:

MODEL

/**
 * @return array
 */
public function getAllAnotherModel()
{
    return AnotherModel::find()->all();
}

VIEW:

<?= $form->field($model, "id_another_model")->dropDownList(
    ArrayHelper::map($model->allAnotherModel, 'id', 'name'),
    ['prompt' => 'Select']
) ?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该直接从视图 yii2 调用模型吗 的相关文章

  • empty() 在对象的非空属性上返回 TRUE

    我遇到了一个非常奇怪且意想不到的问题 empty 正在返回TRUE由于我不知道的原因 在一处非空的房产上 class MyObject private property public function construct property
  • 关于如何在 PHPUnit 中使用 setUp() 和tearDown() 有真实的例子吗?

    Methods setUp and tearDown 在每次测试之前和之后调用 但实际上 有没有任何真实的例子说明我为什么需要这个 检查其他人的测试 我总是看到类似的东西 public function setUp this gt test
  • Laravel 5.3 withCount() 嵌套关系

    模型结构如下 教程 gt hasMany 章节 gt hasMany 视频 我们如何使用 laravel 5 3 的 withCount 方法从教程模型加载视频数量 video count 我努力了 Tutorial withCount c
  • AJAX - 上传文件 (HTML5) 和 PHP

    我感觉完全超出了我的深度 但我感觉很接近 我正在尝试使用 AJAX 上传文件 我找到了这个教程http blog new bamboo co uk 2010 7 30 html5 powered ajax file uploads http
  • 从 PHP 中的平面路径数组构建目录树

    所以 标题可能令人困惑 但我不知道如何表达这种数组结构 它肯定是一个树结构 但至于它的创建 这正是我所渴望的 它似乎不遵循典型的递归数组树构建 我正在尝试从平面路径数组创建列目录布局 每个路径都位于其自己的多维数组内 该数组旨在构建 mac
  • 如何使用 Zend 2 http 发送 json 数据?

    我已经为此苦苦挣扎了几天 我需要将一组以 json 编码的数据发送到 api 我正在尝试使用 Zend 2 http 来实现这一点 但到目前为止我还没有运气 以下是 api 手册的内容 Bulk Create Contacts This c
  • php 错误地将字符串中的 ¬ 转换为 Ø

    我需要在 PHP 中组成一个简单的字符串 它是要发布到另一个站点的数据字符串 问题是其中一个字段是 notify url 当我使用该字段时 PHP 将其前面的 和 not 部分表示逻辑运算符 AND NOT 并将其转换为 字符 string
  • 在 csv 中查找数值

    我需要检查特定的数字 ID 是否在给定的字符串或逗号分隔值中 myVal 20 字符串可以仅包含多个值中的一个值 以逗号分隔 str 20 str 20 33 5 str 220 33 5 4420 本来我想到用strpos 但是20可以在
  • PHP 中“或”的奇怪用法

    PHP s or是一个奇怪的关键字 这是一个让我感到困惑的代码片段 echo 0 or 1 prints 1 foo 0 or 1 echo foo prints 1 foo 0 or 1 echo foo prints 0 for som
  • PHP 资产管道/框架

    背景 我正在致力于 现代化 一个现有的 PHP 驱动的网站 该网站最初是一个带有一些 php 方法的静态网站 它现在有一个移动网络应用程序 多个模型和大量动态内容 然而 随着时间的推移 应用程序本身的结构与它主要是静态站点时相比并没有太大变
  • Woocommerce 从 woocommerce_add_to_cart_fragments 传回的错误片段

    我正在创建自定义 WooCommerce 购物车 并且更新购物车商品的数量工作正常 唯一的问题是它不会自动刷新 只有在页面加载后才起作用 我当前的代码使用woocommerce add to cart fragments挂钩并使用传入的 f
  • PHP 下载页面

    这些 PHP 下载页面 例如 somesite com download php id somefile 通常如何工作 我最初想到了一个执行计数器操作的页面 然后简单地将用户重定向到文件 URL 这似乎是其他地方给出的唯一答案 但是我不知道
  • 如何在使用 echo 时将字符串与函数调用连接起来?

    我想在我的 echo ed html 字符串中使用两个函数调用返回的值 li a href the permalink the title a li 以下工作正常 echo li a href echo the title echo a l
  • 使用命名占位符时 PHP/SQL 插入错误

    我有以下 PHP PDO 语句 STH this gt db gt prepare INSERT INTO UserDetails FirstName LastName Address City County PostCode Phone
  • 无法使用symfony2连接数据库oracle

    我需要的 我需要将oracle数据库与symfony2连接 我已经通过 php m 检查过 oci8 pdo odbc odbc 这是我关注的链接https gist github com johnkary 6481664 https gi
  • WordPress ~ 如何在一页上显示多个 Google Chart?

    下面是我插入到 WordPress Visual Composer 中的原始 HTML 块中的一个 Google 图表的代码 图表 ID 名称为 chart div1 这适用于我的 WP 网页
  • Php mod_rewrite 无法正常工作

    我有一个带有以下链接结构的 php 页面 http localhost wisper businesspage php profile creativeartbd 所以我尝试将此链接转换为以下样式 http localhost wisper
  • 在 Laravel Schema 中创建价格列

    我想在 Laravel 模式中创建一个价格列 public function up Schema create cameras function Blueprint table table gt increments id table gt
  • 当我在 PHP 中将 print_r() 应用于数组时,为什么会得到“Resource id #4”? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • 字符串不等于其自身

    But why if i echo good else echo bad echos gt gt bad 您应该复制此片段 如果你手写的话 它会起作用 它让我疯狂 你太狡猾了 第二个 I 不是小写拉丁文小写 i 我把它转储了 hexdump

随机推荐

  • 我应该如何编辑查询以提高性能,同时保留现有结构?

    我想提高查询的性能 如下所示 里面有一个索引isl ref and isl date字段 但由于我使用 gt 运算符并且使用 因此无法使用索引 1 1440 增加一分钟isl date场地 我应该如何编辑查询以提高性能 同时保留现有结构 S
  • 如何在 Eclipse LogCat 查看器中过滤掉标记名

    我有一个 Android 应用程序会 发送垃圾邮件 LogCat 我想删除它的 logcat 条目以使输出更具可读性 是否可以有一个过滤器来删除特定标记名称的 LogCat 条目 或者一种有效的搜索模式 是的 创建一个过滤器 其中 按日志标
  • Terraform /AWS aws_servicecatalog_portfolio

    我正在尝试通过 Terraform 部署服务目录 当我尝试通过代码部署服务目录产品时 Service catalog product resource aws servicecatalog product linuxDesktop name
  • ExtJS 7.3 中没有可用的 ext-locale 包

    由于某些奇怪的原因 我收到此错误 无法满足 ext locale 的要求 错误 以下内容 版本无法满足 ERR 应用程序 ext locale 否 匹配 ERR 无法解决包要求 根据官方说明 我将需求添加到了 app json classi
  • 如何通过 printf 打印二进制数[重复]

    这个问题在这里已经有答案了 可能的重复 有 printf 转换器可以以二进制格式打印吗 https stackoverflow com questions 111928 is there a printf converter to prin
  • 使用 Robospice 和 Retrofit 将图像上传到 Google appengine

    我正在尝试使用 Robospice 和 Retrofit 将图像上传到我的 Google appengine blobstore 我可以获取 GAE 提供的上传 URL 但是当我尝试将带有图像的 URL 作为 Multipart POST
  • 在 Uvicorn 中与多个工作线程一起使用多重处理(线程锁)

    我正在使用通过 uvicorn 提供的 FastAPI 构建一个 API 该 API 具有使用 python 多处理库的端点 端点为 CPU 密集型任务生成多个进程以并行执行它们 以下是高级代码逻辑概述 import multiproces
  • 我们如何以恒定复杂度或 O(1) 交换 2 个数组?

    我们如何以恒定的复杂度交换 2 个数组或O 1 我们有办法做到这一点吗 我尝试过使用指针 但出现错误 此外 这不会有帮助 因为它只是交换指针而不是数组 include
  • 将 PEM 转换为 PPK 文件格式

    有没有办法将 PEM 文件转换为 PPK 文件 您可能会猜到 Amazon EC2 为我提供了一个 PEM 文件 我需要使用 PPK 格式进行 SSH 连接 Use PuTTYGen http www chiark greenend org
  • Flask-Admin 自定义日期时间视图

    使用flask admin时 日期时间字段的列表视图如下所示 2014 02 22 13 30 43 我想知道是否可以更改此默认视图 如下所示 2014 02 22 或 2014 02 22 13 30 thanks 是的 您可以设置col
  • 如何通过代码发布 SSDT 数据库

    We have SQLServer01 Publish xml当我双击该文件并发布时 它将数据库发布到 sqlServer01 我想问我们可以通过代码以某种方式发布此配置文件吗 SSDT 似乎很喜欢 DacPac 来做这种事情 有一个Dac
  • 如何将 PNG 从 RESOURCES 加载到 CImage 中

    根据此文档LoadFromResource https learn microsoft com en gb cpp atl mfc shared reference cimage class a nameloadfromresourcea
  • 使字符串对 URL 友好(例如:将 Montréal 转换为蒙特利尔)

    我正在编写一个需要友好 URL 的 Web 应用程序 但我不确定如何处理非 7 位 ASCII 字符 我也不想用 URL 编码的实体替换重音字符 是否有允许这种转换的 C 方法 或者我是否需要实际映射出我想要处理的每个案例 我不知道如何在
  • EntityFramework 使用错误的表名

    当我尝试从 Bieren 表获取数据时 我的代码给出了 EntityCommandExecutionException 异常消息表明它找不到 dbo Biers 这很明显 因为它被称为 dbo Bieren 我只需重命名数据库中的表即可轻松
  • 获取所有用户并用vue js显示

    我对 Vue js 非常陌生 现在我尝试通过 ajax 调用获取表中的所有用户 我得到的用户没有任何问题 但是当我尝试使用新数据设置 data user 时 我收到一条错误 指出属性或方法用户未定义 这是我的用户列表组件
  • Ajax 和 PHP 调试

    构建一个脚本 一旦在日期选择器日历中选择了日期 它就会使用 ajax 在 php 脚本中发布所选日期 在该 ajax 调用成功后 它使用另一个 ajax 调用将相同的选定日期发布到另一个 php 脚本并将其显示在页面中 做了一些研究 这似乎
  • 保护对微光应用程序的访问

    这是我之前问题的后续问题 可以看到闪亮的微光应用程序的代码 https stackoverflow com questions 14671609 is is possible to see the code for shiny glimme
  • 如何编译mod_proxy_uwsgi或mod_uwsgi?

    所以我尝试在 apache2 后面使用 uwsgi 但我是在 CentOS 6 机器上这样做的 我习惯使用基于 Debian Ubuntu 的系统作为上下文 I used pip install uwsgi并遵循使用 Django 应用程序
  • 数据结构:插入、删除、包含、获取随机元素,全部都是 O(1)

    我在面试时被问到这个问题 你会如何回答 设计一个数据结构 在 O 1 时间内提供以下操作 insert remove contains 获取随机元素 考虑一个由哈希表 H 和数组 A 组成的数据结构 哈希表键是数据结构中的元素 值是它们在数
  • 我应该直接从视图 yii2 调用模型吗

    我有点困惑 因为在这里 他们直接调用模型 因此不通过控制器传递它 http www yiiframework com doc 2 0 guide input forms html http www yiiframework com doc