我正在尝试使用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)
我在 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,但我无法弄清楚如何改变它。我尝试更改“间隔”的值,但我无法弄清楚其中的数字的作用。
我正在尝试获取分页结果列表,但我希望选择在计算字段上对它们进行排序.
我有这个:
$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)
但这似乎没有任何区别 - 排序顺序仍然被忽略.
我在网上寻找解决方案,但他们似乎都通过使用虚拟字段来解决问题,这显然对我不起作用!
我正在尝试使用 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)