1

我想从 ctp 文件访问控制器操作。这里我的动作名和ctp文件名是不同的。比如我以ticket的名字创建了一个action,我的view ctp文件名为ticket_title。这个怎么做 ?

这是我的行动:票

class UsersController extends AppController
{
public function ticket()
{
 $ticket=$this->Tickets->find('all');
 $this->set(compact('ticket'));
}
}

我的视图 ctp 文件:ticket_title.ctp

<?php
$this->requestAction(array('controller' => 'users', 'action' => 'ticket'));

foreach($ticket as $ticket1)
{
    echo $ticket1->title."<br/>";
}

谁能帮我 ?。

4

3 回答 3

2

最后,它通过使用 render() 方法工作。在我的行动中:

public function ticket()
{
$this->loadModel('Tickets');
$ticket=$this->Tickets->find('all');
$this->set(compact('ticket'));
$this->render('ticket_title');
}

这是我的ticket_title.ctp

<?php
foreach($ticket as $ticket1)
{
    echo $ticket1->title."<br/>";
}
于 2016-01-20T08:25:49.063 回答
0

是的,它在Cake PHP 3 的 CTP 中工作。您可以在任何其他控制器或需要的 ctp 文件中使用此对象

(如果是控制器)

use App\Controller\ControllerName;

$ControllerNameObj = new ControllerName;

$ControllerNameObj->functionName();

(如果是 ctp 文件)

$abcObj = new \App\Controller\HomeController;

$fetchdetail = $abcObj->ControllerfunctionName($parameter1, $parameter2);
于 2018-11-17T07:01:36.510 回答
0

您可以在任何其他控制器或需要的ctp 文件中使用此对象

(如果是控制器)

use App\Controller\ControllerName;

$ControllerNameObj = new ControllerName;

$ControllerNameObj->functionName();

(如果是 ctp 文件)

$abcObj = new \App\Controller\HomeController; 

$fetchdetail = $abcObj->ControllerfunctionName($parameter1, $parameter2);
于 2018-06-04T10:38:50.590 回答