【问题标题】:Display a master-detail view. yii2显示主从视图。 yii2
【发布时间】:2015-12-18 17:18:42
【问题描述】:

我正在寻找一些方法来使用yii2 实现以下内容:

假设我们有以下结构: - rawMaterial 表。 - rawMaterial条目表

每个 rawMaterial -> 有 1 个或多个条目。

我想做的是在视图上显示 rawMaterial 的详细信息,并在其下显示它拥有的所有条目的网格视图。换句话说,主从视图。

我的问题是,在属于当前 rawMaterial 的条目的网格视图中,当我尝试更新、查看或删除任何条目时,它会将我带到 rawMaterial 而不是条目视图

【问题讨论】:

  • 你能展示你的模型、视图和控制器的代码吗?
  • 无法提供完整代码,我们可以指导您或给您解决错误的方法,所以请尽量使您的问题更易于描述

标签: gridview yii2


【解决方案1】:

您只需在 ActionColumn 配置中设置 controller

应处理此处指定的操作的控制器的 ID。如果未设置,它将使用当前活动的控制器。

例如:

[
    'class' => 'yii\grid\ActionColumn',
    'controller' => 'entry',
]

【讨论】:

    【解决方案2】:

    您必须更改 GridView 的 ActionButtonColumn 以提供适当的 Url。否则 GridView 将使用当前的控制器。

    [
    'class' => 'yii\grid\ActionColumn',
    'template' => '{update}{view}',
    'buttons' => [
        'update' => function($url ,$model){
            $url= Yii::$app->urlManager->createAbsoluteUrl(['/entry/update', 'id' => $model->id ]);
            return Html::a('<span class="glyphicon glyphicon-pencil">', $url);
        },
        'view' => function($url ,$model){
            $url= Yii::$app->urlManager->createAbsoluteUrl(['/entry/view', 'id' => $model->id ]);
            return Html::a('<span class="glyphicon glyphicon-eye-open">', $url);
        }
    ]
    

    ]

    【讨论】:

    • entry-controller 不正确,应该是$url= Yii::$app-&gt;urlManager-&gt;createUrl(['/entry/update', 'id' =&gt; $model-&gt;id ]);。前导斜杠使其成为相对于当前控制器的 url not
    猜你喜欢
    • 1970-01-01
    • 2017-05-12
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多