链接两个控制器get()cakephp

I would like to join two controllers. I have a controller Articles with a view function :

public function view($id = null)
    {
       $article = $this->Articles->get($id, [
            'contain' => []
        ]);
        $this->set('article', $article);
        $this->set('_serialize', ['article']);
    }

Each article has an associated user. So I have a controller Users. Now I can have the user_id for the article (in database). Is it possible to access the username in the User table with the user_id in the Articles table? With a get() function.

For example I know how to do it with find() :

$this->set('articles', $this->Articles->find('all')->contain(['Users']));

But is it possible with get()? For a particular article.

Thanks!

if you have username field in users table:

class UsersTable extends Table
{

    public function initialize(array $config)
    {
        $this->displayField('username');

    }
}

Articles table

class ArticlesTable extends Table
{

    public function initialize(array $config)
    {
        $this->belongsTo('Users', [
            'foreignKey' => 'user_id',
            'joinType' => 'INNER'
        ]);
    }
}

In your Articles controller:

public function view($id = null)
{
   $article = $this->Articles->get($id, [
        'contain' => ['Users']
    ]);
    $this->set('article', $article);
    $this->set('_serialize', ['article']);
}

in your articles view

<?= $article->has('user') ? $this->Html->link($article->user->username, ['controller' => 'Users', 'action' => 'view', $article->user->id]) : '' ?>

In the get() function, just add Users to the contain array:

'contain' => ['Users']