通过 html 按钮传递变量值

Passing a variable value through a html button

我在 PHP 脚本中使用 HTML。我已将 'client_id' 设置为“1”,但 'client_id' 本身是一个变量,它在控制器中用于检索客户端 ID ($client_id)。我不想传递默认值,而是传递变量,以便它可以检索 $client_id 持有的值。如果我设置 'client_id => 'null' 那么我只会收到一条错误消息,指出找不到客户端(这是正确的,因为没有客户端被传递)。如果我设置 'client_id' => '1',它可以工作,但我不想传递静态值。

这是按钮的代码:

<?= Html::a('<span class="glyphicon glyphicon-export"></span> Download full questions template', ['export/export-template', 'client_id' => '1', 'type' => 'full'], ['class' => 'btn btn-primary pull-right']); ?>

这是检索 $client_id 的代码:

```public function actionExportTemplate( $client_id= null, $type = null)
{
    // Get client
    $Client = self::getClient($client_id);```
private function getClient($client_id)
    {
        if (isset(Yii::$app->user->identity->client_id)) {
            $client_id = Yii::$app->user->identity->client_id;
        }
        
        $Client = Client::findOne($client_id);
        
        if (is_null($Client)) {
            throw new NotFoundHttpException('Client not found');
        }

        return $Client;
    }

所以我的问题是,如何通过 HTML 按钮中的“$client_id”?

你好,你没有提到控制器代码,但是你可以传递变量形式的控制器来查看 假设这是控制器 class 代码

function actionExportTemplate( $client_id= null, $type = null){
  $clientId = getClient($client_id);
  return $this->render('demo', ['clientId' => $clientId]);
}

private function getClient($client_id)
{
    if (isset(Yii::$app->user->identity->client_id)) {
        $client_id = Yii::$app->user->identity->client_id;
    }
    
    $Client = Client::findOne($client_id);
    
    if (is_null($Client)) {
        throw new NotFoundHttpException('Client not found');
    }

    return $Client;
}

现在假设这是你的查看代码我把它命名为demo.php

<?= Html::a('<span class="glyphicon glyphicon-export"></span> Download full questions template', ['export/export-template', 'client_id' => $clientId, 'type' => 'full'], ['class' => 'btn btn-primary pull-right']); ?>