gpt4 book ai didi

php - Yii CGridView,显示来自具有过滤功能的相关模型的多列

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:25 26 4
gpt4 key购买 nike

我是 yii 的新手,遇到了以下问题。我有 2 个相关表,ClientTicketProduct,结构如下:

客户票据

  • 编号
  • ticket_name
  • client_id
  • 产品编号

产品

  • 编号
  • 输入
  • 模特
  • 品牌

这两个表通过将 ClientTicket.product_id 绑定(bind)到 Product.id 的外键相关联。

问题

在 ClientTicket 的管理 View 中,我设法包含了两个产品列(品牌、型号)并显示了每个列的搜索框,但过滤没有按预期工作。例如:当我在两个搜索框(品牌、型号)中的任何一个中进行搜索时,另一个搜索框会自动填充我输入的相同值(因此没有搜索结果)。

ClientTicket 模型:

    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(
'product' => array(self::BELONGS_TO, 'Product', 'product_id'),
........
);
}

public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.

$criteria=new CDbCriteria;

...
$criteria->compare('product.model',$this->product_id, true);
$criteria->compare('product.brand',$this->product_id, true);
...

$criteria->with=array(..., 'product',);
$criteria->together= true;

return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination' => array('pageSize' => 10),
));
}

ClientTicket Admin View 文件:

<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'client-ticket-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'ticket_number',
'ticket_date',
array('name'=>'agent_id',
'header'=> 'Agent',
'value'=> '$data->ticket_agent->name',
'filter'=>CHtml::listData(Agent::model()->findAll(), 'name', 'name'),
),
...
array('name'=>'product_id',
'header'=> 'Product',
'value'=> '$data->product->model',
),
array('name'=>'product_id',
'header'=> 'Brand',
'value'=>'$data->product->brand'
),

最佳答案

您的 productbrand 列都具有相同的 name 但不同的 value。过滤器从 name 获取字段名称,除非您明确声明它,即创建您自己的事件字段。此外,您使用相同的属性 product_id 来搜索 search 函数中的两个字段。

如何使用相关模型进行过滤已在Yii - how can I search by a column from foreign/related key on admin page? 得到解答。

关于php - Yii CGridView,显示来自具有过滤功能的相关模型的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19533795/

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