首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在控件窗体中使用关联数据时,CakePHP 3无法发出标头

在控件窗体中使用关联数据时,CakePHP 3无法发出标头
EN

Stack Overflow用户
提问于 2018-07-12 02:42:00
回答 0查看 820关注 0票数 0

我使用的是CakePHP 3.6.7,我的问题是当我在控件窗体中使用关联数据时,我得到了unable to emit headers警告。

下面是我的代码:

AppController.php初始化函数(如果用户已登录,我将从此处检索他的所有数据)

代码语言:javascript
复制
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初始化函数

代码语言:javascript
复制
public function initialize()
{
    parent::initialize();

}

UserPersonalDataController.php编辑功能

代码语言:javascript
复制
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,下面的窗体将在调试模式下抛出“unable to emit headers”警告

代码语言:javascript
复制
<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,则下面的窗体不会抛出任何警告

代码语言:javascript
复制
<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() form helper中使用相关数据,它将在调试模式下抛出该警告。如果我不在调试模式下,它会工作得很好,但我担心它。谢谢你的帮助!

编辑:以下是警告的屏幕截图:

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51292261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档