小编Sha*_*ron的帖子

CakePHP:找不到"Class'HttpSocket'"

我正在尝试使用CakePHP的HttpSocket类进行API调用,但我似乎无法将其包含在类中.这看起来很简单,所以我看不出我可能会出错的地方,但这就是我所拥有的:

在控制器的顶部:

class RetailersController extends AppController {

    public $uses = array(...lots of classes..., 'HttpSocket', 'Network/Http');
Run Code Online (Sandbox Code Playgroud)

然后在函数本身:

$HttpSocket = new HttpSocket();
Run Code Online (Sandbox Code Playgroud)

当我跑步时,我得到:

Fatal Error

Error: Class 'HttpSocket' not found
Run Code Online (Sandbox Code Playgroud)

正如我所说的那样,对此并不多,所以我看不出有多少可能出错 - 但我似乎已经设法了!有人有任何想法吗?谢谢!

(我正在使用CakePHP 2.4)

cakephp

2
推荐指数
1
解决办法
989
查看次数

Recharts - 如何自己设置 Y 轴标签?

我在 Recharts 中创建了一个图表。我有一系列日期,每个日期都有一个 0-10 范围内的关联值(仅限整数)。

我将其绘制在折线图中,如下所示:

<LineChart data={mydata}>
  <XAxis dataKey="date" interval={"preserveStartEnd"}  height={60} tick={<CustomizedXAxisTick />} />
  <YAxis domain={[0,10]} interval={"preserveStartEnd"} />
  <Line type="monotone" dataKey="mykey" strokeWidth={2}/>
</LineChart>
Run Code Online (Sandbox Code Playgroud)

x 轴看起来不错,但在 y 轴上显示的刻度线是 0、3、6 和 10。我宁愿显示 0、2、4、6、8、10,但我无法弄清楚如何改变它。我尝试更改“间隔”的值,但我无法弄清楚其中的数字的作用。

recharts

2
推荐指数
1
解决办法
5108
查看次数

使用CakePHP分页对计算字段进行排序

我正在尝试获取分页结果列表,但我希望选择在计算字段上对它们进行排序.

我有这个:

$this->Paginator->settings = array(
        'fields' => 'COUNT(Invoice.id) as totalInvoices,
                 SUM(Invoice.price_paid) as totalPaid,
                 MAX(Invoice.invoice_date) as latestInvoice',
        'group' => array('Invoice.supplier_id'),
        'order' => array($order => $direction)
    );
Run Code Online (Sandbox Code Playgroud)

$ order是要排序的字段的名称,$ direction只是'asc'或'desc'.

如果我对数据库中存在的字段进行排序,就像'price_paid'按照每个数量的顺序查找发票或其他任何内容,这很好,但它似乎不能应对totalPaid或latestInvoice上的排序 - 我只是得到未分类的结果.

我尝试通过例如创建一个虚拟字段

$this->Invoice->virtualFields['latestInvoice'] = 'MAX(Invoice.invoice_date)';
$order = "Invoice.latestInvoice";
Run Code Online (Sandbox Code Playgroud)

但这似乎没有任何区别 - 排序顺序仍然被忽略.

我在网上寻找解决方案,但他们似乎都通过使用虚拟字段来解决问题,这显然对我不起作用!

pagination cakephp

1
推荐指数
1
解决办法
1390
查看次数

Cakephp 4.0 中的validationDefault 声明

我正在尝试使用 CakePHP 4.0 创建一个站点,但无法使验证规则起作用。我阅读了文档,但不确定应该将 validationDefault 函数放在哪里。我把它放在 UsersTable.php 中,它看起来像这样:

<?php

namespace App\Model\Table;

use App\Model\Entity\User;
use Cake\ORM\Query;
use Cake\ORM\RulesChecker;
use Cake\ORM\Rule\IsUnique;
use Cake\ORM\Table;
use Cake\Validation\Validator;

class UsersTable extends Table {

    public function initialize(array $config): void {

        $this->addBehavior('Timestamp');

        $this->hasMany('Requests')
                ->setDependent(true);

        $this->hasMany('Offers')
                ->setDependent(true);

    }

    public function validationDefault(Validator $validator) {

        $validator->notEmptyString('email', 'Please enter your email address')
                  ->notEmptyString('name', 'Please enter a name');

        return $validator;
    }
}

?>
Run Code Online (Sandbox Code Playgroud)

所以我希望如果用户尝试在没有电子邮件或姓名的情况下登录,它应该会抛出一个错误。

我的注册表格是:

        echo $this->Form->create();
        echo $this->Form->control('name');
        echo $this->Form->control('email');
        echo $this->Form->control('password', array('type' => 'password'));
        echo $this->Form->control('confirm_password', array('type' => 'password'));
        echo …
Run Code Online (Sandbox Code Playgroud)

cakephp

1
推荐指数
1
解决办法
623
查看次数

标签 统计

cakephp ×3

pagination ×1

recharts ×1