gpt4 book ai didi

php - Yii 为另一个模型中存在的字段创建 CButton 列

转载 作者:行者123 更新时间:2023-11-29 14:21:25 25 4
gpt4 key购买 nike

我正在尝试添加以下功能,但我不知道从哪里开始。任何建议、示例或指导将不胜感激。

我想在此上下文中向主模型的 cgridview 添加按钮。此模型的 cgridview 中可用的每条记录都有一个名为“lot”的唯一属性,例如 R3XSEF9

我的数据库中还有另一个辅助表/模型,其中包含具有相同批处理属性的记录。然而,该表仅具有所有可能记录中的某些记录,有时是重复的,并且具有一组不同的属性。

我想要做的是,使用批处理属性,例如我的 cgridview 中的批处理 R3XSEF9,搜索辅助表以查看是否有一个或多个对应行包含相同的批处理 R3XSEF9。

如果是这样,我希望该按钮显示在我的 CButtonColumn 中,并链接到辅助表的相应模型的 View 。如果没有,我不希望出现任何按钮。

感谢您的帮助。如果需要任何澄清,我很乐意这样做。

最佳答案

首先,您需要使用模型类中的“关系”函数来链接表。如果您在已填充的数据库关系中使用 FOREIGN KEY 约束。

SQL语句:

CREATE TABLE Model1
(
...
FOREIGN KEY(lot) REFERENCES MainModel(lot) ON UPDATE CASCADE ON DELETE RESTRICT,
...
)

模型类:

 class MainModel extends CActiveRecord
{
...

public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'lots' => array(self::HAS_MANY, 'Model2', 'lot'),
);
}

然后您可以在网格( View 文件)中使用自定义按钮列,如下所示:

<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'main-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
...
array(
'class' => 'CButtonColumn',
'template' => '{lots}',
'header' => 'Lots',
'buttons' => array(
'lots' => array(
'label' => 'Lots',
'imageUrl' => Yii::app()->request->baseUrl.'/img/....png',
'url' => 'Yii::app()->createUrl("controller1/lotlistbymainid", array("id" => $data->id))',
'visible' => 'count($data->lots) > 0',
),
),
),

通过“buttons”数组传递的按钮参数的说明,您可以找到 here 。特别是这部分:

按钮属性

公共(public)数组$buttons;

附加按钮的配置。每个数组元素指定一个按钮,其格式如下:

'buttonID' => array(
'label'=>'...', // text label of the button
'url'=>'...', // a PHP expression for generating the URL of the button
'imageUrl'=>'...', // image URL of the button. If not set or false, a text link is used
'options'=>array(...), // HTML options for the button tag
'click'=>'...', // a JS function to be invoked when the button is clicked
'visible'=>'...', // a PHP expression for determining whether the button is visible
)

关于php - Yii 为另一个模型中存在的字段创建 CButton 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11677106/

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