gpt4 book ai didi

php - 如何在 Yii 中获取相关值?

转载 作者:可可西里 更新时间:2023-10-31 22:07:30 26 4
gpt4 key购买 nike

架构:

CITY
ID (int)
Name (string)
Status (int)

CITY_STATUS
ID (int)
Name (string)
  1. 当我显示一个城市(在 View View 中)时,我想显示相关的 CITY_STATUS.Name 值,而不是 CITY.Status 值

  2. 当我添加或更新城市时,我想在下拉列表中显示所有 CITY_STATUS.Names 的下拉列表

我如何在 Yii 中执行此操作?

最佳答案

猜猜我会自己回答。

问题一

如果您先在数据库中设置外键,关系会更容易。为此,您需要将 MySQL(不是 SQLite)与 InnoDB 引擎(不是 MyISAM)一起使用,并且相关字段需要一个索引。然后,Gii 会自动为你设置关系函数。否则,您必须在相关模型的 relations() 函数中手动执行此操作。

在 View 中使用相关值:

在protected/views/[model name]/view.php中,在CDetailView属性数组中,更改

'Status'

array('label'=>'Status', 'value'=>$model->RelationName->Name)

其中 RelationName 是关系的名称

要在索引 View 中使用相关值,请更改 protected/views/[model name]/_view.php(注意下划线),例如在这种情况下您将更改

$data->Status

$data->RelationName->Name

要在管理 View 中使用相关值,请在 CGridView 小部件调用中,在列数组中替换 say

'Status'

array('name'=>'Status', 'header'=>'Status', 'value'=>'$data->RelationName->Name')

(注意变量 $data 的使用,而不是 $model 或 $dataProvider)。仍在尝试弄清楚如何排序和过滤...

问题2

要使用下拉菜单,在 protected/views/[model name]/_form.php 中:

改变

<?php echo $form->textField($model,'Status'); ?>

<?php echo $form->dropDownList($model,'Status', CHtml::listData(Status::model()->findAll(), 'ID', 'Name')); ?>

酋长,君子君子。

关于php - 如何在 Yii 中获取相关值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4261563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com