如何创建自定义的WHMCS页面来显示数据库结果?

问题描述 投票:1回答:1

我正在做一个WHMCS的自定义页面,但却出现了错误。我想从一个表格中显示数据--我使用客户的表格作为参考。如果能得到帮助,我将感激不尽。

如果我删除了tpl代码中的table部分,其他部分就能正确显示。

使用的代码如下:

currentmembers.php

<?php
use WHMCS\ClientArea;
use WHMCS\Database\Capsule;

define('CLIENTAREA', true);

require __DIR__ . '/init.php';

$ca = new ClientArea();

$ca->setPageTitle('Bank Statement');
$ca->addToBreadCrumb('index.php', Lang::trans('globalsystemname'));
$ca->addToBreadCrumb('bankstatement.php', 'Bank Statement');

$ca->initPage();

$ca->requireLogin(); // Uncomment this line to require a login to access this page


// Check login status
if ($ca->isLoggedIn()) {

    //get the logged in user id
            $loggedin_user_id =  $ca->getUserID(); //$_SESSION['uid'];
            $client = Capsule::table('tblclients')
                    ->where('id', '=', $loggedin_user_id)
                    ->first();

            $ca->assign('client_email', $client->email);
            $ca->assign('clientName', $client->firstname);


    //$data = Capsule::table('tblclients');
        //->where('id', '=', $ca->getUserID())->value('firstname');
        // 'pluck' was renamed within WHMCS 7.0.  Replace it with 'value' instead.
        //->where('id', '=', $ca->getUserID())
        //->value('firstname');
    /// $ca->assign('data', $data);

//GET ALL CLIENTS FROM DATABASE 
    $clientx = Capsule::table('tblclients')
                   ->take(2)
                   ->get();

    $ca->assign('clientxs', $clientx);
    print_r ($ca->assign('clientxs', $clientx));

} else {

    // User is not logged in
    $ca->assign('clientname', 'Random User');

}

$ca->setTemplate('bankstatement');
$ca->output();

这是模板codecurrentmembers.tpl。

<p>
        Client email is: {$client_email}
</p>

<p>
        Client name is: {$clientName}
</p>



<div class="table-container clearfix">
   <table class="ui celled table">
  <thead>
    <tr><th>Name</th>
    <th>Email</th>
    <th>ID</th>
  </tr></thead>
  <tbody>
  {foreach from=$clientxs item=clientx}
    <tr>
      <td data-label="Name">{$clientx.firstname} {$clientx.lastname}</td>
      <td data-label="Age">{$clientx.email}</td>
      <td data-label="Job">{$clientx.id}</td>
    </tr>

{/foreach}
  </tbody>
</table>
</div>
php whmcs
1个回答
0
投票

$clientx是一个对象。所以你需要使用对象操作符(->)来访问它的属性。Dot是用于数组.所以在模板代码中变成:

{foreach from=$clientxs item=clientx}
    <tr>
      <td data-label="Name">{$clientx->firstname} {$clientx->lastname}</td>
      <td data-label="Age">{$clientx->email}</td>
      <td data-label="Job">{$clientx->id}</td>
    </tr>

{/foreach}
© www.soinside.com 2019 - 2024. All rights reserved.