Cakephp 3三列视图基于ID

时间:2018-02-05 18:47:47

标签: cakephp

这是Cakephp 3.5,所以我有三个企业1,2,3。我的目的是显示预计的费用收入。

在索引页面上,我有一个三列Div

<div class="row">
        <div class="col-md-12">
        <h2><?= __('Estimated Revenue From Fees') ?></h2>
        <div class="row">
            <div class="column">
                <h4>Business One</h4>
                <ul>
                    <?php foreach ($estimatedRevenueFromCFeesBiz1 as $estimatedRevenueFromFeeBiz1): ?>
                        <li class="actions">
                           <?= $this->Html->link(__( h($estimatedRevenueFromFeeBiz1->year), ['action' => 'view', $estimatedRevenueFromFeeBiz1->id]) ?>
                        </li>
                    <?php endforeach; ?>
                </ul>
            </div>
            <div class="column">
                 <h4>Business Two</h4>
                 <?php foreach ($estimatedRevenueFromFeesNauBiz2 as $estimatedRevenueFromFeeBiz2): ?>
                        <li class="actions">
                           <?= $this->Html->link(__( h($estimatedRevenueFromFeeNauBiz2->year), ['action' => 'view', $estimatedRevenueFromFeeBiz2->id]) ?>
                        </li>
                 <?php endforeach; ?>
            </div>
            <div class="column">
                 <h4>Business Three</h4>
                 <?php foreach ($estimatedRevenueFromCourseFeesUa as $estimatedRevenueFromCourseFeeUa): ?>
                        <li class="actions">
                           <?= $this->Html->link(__( h($estimatedRevenueFromFeeBiz3->year), ['action' => 'view', $estimatedRevenueFromFeeBiz3->id]) ?>
                        </li>
                 <?php endforeach; ?>
            </div>
        </div>
        </div>
    </div>

在我的控制器中,我设置如下:

 public function index()
        {
            $estimatedRevenueFromFeesBiz1 = $this->EstimatedRevenueFromFeesBiz1->find('list', array( 'conditions' => 'business_id' == 1));
            $estimatedRevenueFromFeesBiz2 = $this->EstimatedRevenueFromFeesBiz2->find('list', array( 'conditions' => 'business_id' == 2));
            $estimatedRevenueFeesBiz3 = $this->EstimatedRevenueFromFeesBiz3->find('list', array( 'conditions' => 'business_id' == 1));
            $this->set(compact('estimatedRevenueFromFeesBiz1', 'estimatedRevenueFromFeesBiz2', 'estimatedRevenueFromFeesBiz3'));
        }

我在布尔值上调用成员函数find() 错误:ROOT \ src \ Controller \ EstimatedRevenueFromCourseFeesController.php,第26行是

$estimatedRevenueFromFeesBiz1 = $this->EstimatedRevenueFromFeesBiz1->find('list', array( 'conditions' => 'business_id' == 1)); line.

2 个答案:

答案 0 :(得分:0)

我明白了。我将控制器更改为只调用整个表:

public function index()
        {
            $this->paginate = [
                'contain' => ['Businesses']
            ];
            $estimatedRevenueFromFees = $this->paginate($this->EstimatedRevenueFromFees);
            $this->set(compact('estimatedRevenueFromFees'));
        }

然后我在index.ctp文件中添加了一个条件:

        <h4>Business One</h4>
        <ul>
            <?php foreach ($estimatedRevenueFromFees as $estimatedRevenueFromFee): ?>
                <?php if ($estimatedRevenueFromFee['business_id'] == 1): ?>
                <li class="actions">
                   <?= $this->Html->link(__( h($estimatedRevenueFromFee->year), ['action' => 'view', $estimatedRevenueFromFee->id]) ?>
                </li>
                <?php else: ?>
                <?php   continue; ?>
                <?php endif; ?>
            <?php endforeach; ?>
        </ul>

答案 1 :(得分:0)

嗯,根据你所说的和你自己的答案,看起来你想要做的就是:

public function index() {
  $estimatedRevenueFromFeesBiz1 = $this->EstimatedRevenueFromFees->find('list', ['conditions' => ['business_id' == 1]]);

  $estimatedRevenueFromFeesBiz2 = $this->EstimatedRevenueFromFees->find('list', ['conditions' => ['business_id' == 2]]);

  $estimatedRevenueFeesBiz3 = $this->EstimatedRevenueFromFees->find('list', ['conditions' => ['business_id' == 1]]);

  $this->set(compact('estimatedRevenueFromFeesBiz1', 'estimatedRevenueFromFeesBiz2', 'estimatedRevenueFromFeesBiz3'));

}

您的情况有哪些变化(business_id)。但是你总是在同一张桌子上查询(EstimatedRevenueFromFees)。

请记住,在您的解决方案中,您正在进行分页。因此,您最终可能会在页面中包含某个business_id或任何组合。