【问题标题】:how to join tables in yii2yii2如何连接表
【发布时间】:2018-01-17 18:09:34
【问题描述】:

我的项目公司和联系人中有两张表。 公司表内容公司ID、名称、网站等。 联系人内容名字,姓氏,公司员工的电子邮件。

当我点击公司名称时,我应该得到该公司的员工联系方式。 比如“从公司 id = $id 的联系人中选择 *”

公司/index.php

$gridColumns = [
                    ['class' => 'yii\grid\SerialColumn'],
                    ['class' => 'yii\grid\CheckboxColumn'],
                    'name', // onclick of name ,how to open contacts table containing that 'name'
                    'company_mail',
                ];

 echo GridView::widget([
                'tableOptions' => ['id' => 'companies_grid_table',
                'class' => 'table table-striped table-bordered table-hover'],
                'id'=> 'companies_grid_display',
                'dataProvider' => $dataProvider,
                'filterModel' => $searchModel,
                'columns' => $gridColumns,
            ]); 

这是公司表,当点击公司名称时,另一个名为“联系人”的表应该打开

【问题讨论】:

  • 你想问什么?如果您想单击公司名称并列出联系人,请将公司id onclick 提交到另一个页面/操作,然后使用gridview 调用视图,就像这样并在该公司的单独页面上列出联系人,您应该在开始提问之前阅读文档
  • @MuhammadOmerAslam 看到编辑......你可能明白我的要求......
  • 问之前有没有尝试过?在这里您可以找到一些帮助,但没有人为您开发。因此,首先尝试编写解决方案,然后,如果您遇到一些错误,请尝试询问。对于表之间的关系,请查看documentation

标签: join gridview yii2


【解决方案1】:

如果我理解...试试这个:

<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
    [
        'attribute' => 'name',
        'format' => 'raw',
        'value' => function ($data) {
            return Html::a($data->name, ['/custom-url/contacts', 'ContactSearch[company_id]' => $model->id]);
        },
 ]]]); ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多