cakephp在不同的模板上使用模型和控制器

rkttyhzu  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(316)

我已经阅读了文档,其中创建了表、实体、控制器,然后是显示数据的模板。在my/articles站点上,我现在想显示用户数据。因此,我的用户数据将显示在/articles上,而不是/users上。
在/templates/articles/index.php中,我可以使用 $articles 现在,但不是 $users . 如何在我的页面中使用另一个控制器?

q3aa0525

q3aa05251#

我的目标是在发布文章的用户电子邮件中添加一行。
articlescontroller.php

public function index(){
    $articles = $this->Paginator->paginate($this->Articles->find());
    $users = $this->Articles->Users->find('')->all()->first();
    $this->set('users', $users);
    $this->set(compact('articles'));
}

我的模板/articles/index.php

<?php foreach ($articles as $article): ?>
    <tr>
        <td>
            <?= $this->Html->link($article->title, ['action' => 'view', $article->slug]) ?>
        </td>
        <td>
          a
        </td>
        <td>
          <?php echo $article->$users ?>
        </td>
        <td>
          <?= $this->Html->link('Edit', ['action' => 'edit', $article->slug]) ?>
        </td>
        <td>
          <?= $this->Form->postLink(
                'Delete',
                ['action' => 'delete', $article->slug],
                ['confirm' => 'Are you sure?']) ?>
        </td>
    </tr>
    <?php endforeach; ?>

my articlestable.php

class ArticlesTable extends Table
{
    public function initialize(array $config): void
    {
        $this->addBehavior('Timestamp');
        $this->belongsToMany('Tags');
        $this->hasOne('Users'); 
    }
    public function beforeSave(EventInterface $event, $entity, $options)
{
    if ($entity->isNew() && !$entity->slug) {
        $sluggedTitle = Text::slug($entity->title);
        // trim slug to maximum length defined in schema
        $entity->slug = substr($sluggedTitle, 0, 191);
    }
}
}

相关问题