CakePHP 3 在以控件形式使用关联数据时无法发出 headers
CakePHP 3 Unable to emit headers when using associated data in control form
我正在使用 CakePHP 3.6.7,我的问题是当我在控件表单中使用关联数据时,我无法发出 headers 警告。
这是我的代码:
AppController.php 初始化函数(如果用户登录,我从这里检索他的所有数据)
public function initialize() {
parent::initialize();
// Retrieve user data for all views
if($this->request->getSession()->read('Auth.User')) {
$this->user = $this->Users->get($this->request->getSession()->read('Auth.User.id'), [
'contain' => ['UserPersonalData']
]);
$this->set('user', $this->user);
$this->set('_serialize', 'user');
}
}
UserPersonalDataController.php 初始化函数
public function initialize()
{
parent::initialize();
}
UserPersonalDataController.php编辑函数
public function edit()
{
if ($this->request->is(['patch', 'post', 'put'])) {
$userPersonalData = $this->Users->patchEntity($this->user, $this->request->getData());
if ($this->Users->save($userPersonalData)) {
$this->Flash->success(__('The user personal data has been saved.'));
return $this->redirect($this->user->username);
}
$this->Flash->error(__('The user personal data could not be saved. Please, try again.'));
}
}
edit.ctp,下面的形式会在debug模式下抛出unable to emit headers警告
<div class="container" style="padding: 2rem">
<div class="users form large-9 medium-8 columns content">
<?= $this->Form->create($user, [
'class' => 'form-signin',
]); ?>
<fieldset>
<legend><?= __('Edit User') ?></legend>
<?php
echo $this->Form->control('user_personal_data.firstName', ['required' => true, 'class' => 'form-control', 'placeholder' => 'First Name', 'label' => false]);
echo $this->Form->control('user_personal_data.lastName', ['required' => true, 'class' => 'form-control', 'placeholder' => 'Last Name', 'label' => false]);
echo $this->Form->control('user_personal_data.phone', ['required' => true, 'class' => 'form-control', 'placeholder' => 'Phone', 'label' => false]);
?>
</fieldset>
<?= $this->Form->button(__('Submit'), ['class' => 'btn btn-lg btn-primary btn-block' ]) ?>
<?= $this->Form->end() ?>
</div>
edit.ctp,下面的形式不会抛出任何警告
<div class="container" style="padding: 2rem">
<div class="users form large-9 medium-8 columns content">
<?= $this->Form->create($user, [
'class' => 'form-signin',
]); ?>
<fieldset>
<legend><?= __('Edit User') ?></legend>
<?php
echo $this->Form->control('email', ['required' => true, 'class' => 'form-control', 'placeholder' => 'First Name', 'label' => false]);
?>
</fieldset>
<?= $this->Form->button(__('Submit'), ['class' => 'btn btn-lg btn-primary btn-block' ]) ?>
<?= $this->Form->end() ?>
</div>
正如我所说,如果我在 control() 表单助手中使用关联数据,它会在调试模式下抛出该警告。如果我不在调试模式下,它会工作得很好,但我很担心。
感谢您的帮助!
编辑:这是警告的屏幕截图:
问题是,正如 Greg Schmidt 所说,我的数值格式不正确。已解决!
我正在使用 CakePHP 3.6.7,我的问题是当我在控件表单中使用关联数据时,我无法发出 headers 警告。
这是我的代码:
AppController.php 初始化函数(如果用户登录,我从这里检索他的所有数据)
public function initialize() {
parent::initialize();
// Retrieve user data for all views
if($this->request->getSession()->read('Auth.User')) {
$this->user = $this->Users->get($this->request->getSession()->read('Auth.User.id'), [
'contain' => ['UserPersonalData']
]);
$this->set('user', $this->user);
$this->set('_serialize', 'user');
}
}
UserPersonalDataController.php 初始化函数
public function initialize()
{
parent::initialize();
}
UserPersonalDataController.php编辑函数
public function edit()
{
if ($this->request->is(['patch', 'post', 'put'])) {
$userPersonalData = $this->Users->patchEntity($this->user, $this->request->getData());
if ($this->Users->save($userPersonalData)) {
$this->Flash->success(__('The user personal data has been saved.'));
return $this->redirect($this->user->username);
}
$this->Flash->error(__('The user personal data could not be saved. Please, try again.'));
}
}
edit.ctp,下面的形式会在debug模式下抛出unable to emit headers警告
<div class="container" style="padding: 2rem">
<div class="users form large-9 medium-8 columns content">
<?= $this->Form->create($user, [
'class' => 'form-signin',
]); ?>
<fieldset>
<legend><?= __('Edit User') ?></legend>
<?php
echo $this->Form->control('user_personal_data.firstName', ['required' => true, 'class' => 'form-control', 'placeholder' => 'First Name', 'label' => false]);
echo $this->Form->control('user_personal_data.lastName', ['required' => true, 'class' => 'form-control', 'placeholder' => 'Last Name', 'label' => false]);
echo $this->Form->control('user_personal_data.phone', ['required' => true, 'class' => 'form-control', 'placeholder' => 'Phone', 'label' => false]);
?>
</fieldset>
<?= $this->Form->button(__('Submit'), ['class' => 'btn btn-lg btn-primary btn-block' ]) ?>
<?= $this->Form->end() ?>
</div>
edit.ctp,下面的形式不会抛出任何警告
<div class="container" style="padding: 2rem">
<div class="users form large-9 medium-8 columns content">
<?= $this->Form->create($user, [
'class' => 'form-signin',
]); ?>
<fieldset>
<legend><?= __('Edit User') ?></legend>
<?php
echo $this->Form->control('email', ['required' => true, 'class' => 'form-control', 'placeholder' => 'First Name', 'label' => false]);
?>
</fieldset>
<?= $this->Form->button(__('Submit'), ['class' => 'btn btn-lg btn-primary btn-block' ]) ?>
<?= $this->Form->end() ?>
</div>
正如我所说,如果我在 control() 表单助手中使用关联数据,它会在调试模式下抛出该警告。如果我不在调试模式下,它会工作得很好,但我很担心。 感谢您的帮助!
编辑:这是警告的屏幕截图:
问题是,正如 Greg Schmidt 所说,我的数值格式不正确。已解决!