如何在Zend Framework 3中从Controller调用模型方法

查坦亚·赛拉姆(Chaitanya Sairam)

对于无法正确构建问题标题,我深表歉意。我正在使用zf3的框架应用程序来实现acl。我无法确定如何检索相应电子邮件地址的行。我有两个控制器AlbumController.php和LoginController.php AlbumController.php

private $table;
public function __construct(AlbumTable $table)
{
    $this->table = $table;
}
public function deleteAction()
{
    $user_session=new Container('user');
    if(isset($user_session->email))
    {
      $row=$this->loginTable->getRow($user_session->email);//*Here is the problem*
        if($row['role']=='admin')
        {
            $acl=new Acl();
            if($acl->isAllowed('admin','AlbumController','delete'))
            {
                 $id = (int) $this->params()->fromRoute('id', 0);
                if (!$id) {
                    return $this->redirect()->toRoute('album');
                }
            $request = $this->getRequest();
            if ($request->isPost()) {
                $del = $request->getPost('del', 'No');

                if ($del == 'Yes') {
                    $id = (int) $request->getPost('id');
                    $this->table->deleteAlbum($id);
                }
                return $this->redirect()->toRoute('album');
            }
            return [
                'id'    => $id,
                'album' => $this->table->getAlbum($id),
            ];
    }
        }
     return $this->redirect()->toRoute('login');
     }
   }

LoginController.php

public $user_session;
public $loginTable;
public function __construct(LoginTable $loginTable)
{
 $this->loginTable = $loginTable;
}

我正在调用Model LoginTable.php中存在的LoginTable.php的getRow()方法。但这会在非对象上引发对成员函数getRow()的错误调用

LoginTable.php

class LoginTable
{
protected $tableGateway;
public function __construct(TableGateway $tableGateway)
 {
     $this->tableGateway = $tableGateway;
 }
public function getRow($mail)
{
     $email  =  $mail;
     $rowset = $this->tableGateway->select(array('email' => $email));
     $row = $rowset->current();
     if (!$row) {
         throw new \Exception("Could not find row $email");
     }
     return $row;
}
AlFoиceѫ

你在呼唤$this->loginTable->getRow()你的AlbumController类,但你没有定义loginTable在这个控制器。您是在LoginController类中完成此操作的,但这不是相同的对象。

在您的AlbumController中注入一个LoginTable实例

AlbumController.php

....

private $albumTable;
private $loginTable;

public function __construct(AlbumTable $albumTable, LoginTable $loginTable)
{
    $this->albumTable= $albumTable;
    $this->loginTable= $loginTable;
}

....

AlbumControllerFactory.php (适应您的代码):

class AlbumControllerFactory implements FactoryInterface
{
    public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
    {
        return new AlbumController(
            $container->get(AlbumTable::class),
            $container->get(LoginTable::class)
        );
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Zend Framework Controller中访问全局变量

来自分类Dev

如何在 Zend Framework 3 中实现 CSRF 保护?

来自分类Dev

如何在 Zend Framework 3 中声明全局常量?

来自分类Dev

如何在zend framework 2中创建工厂?

来自分类Dev

如何在zend Framework 2中返回对象数组?

来自分类Dev

如何在Zend Framework表单中添加id属性?

来自分类Dev

如何在Zend Framework 1.12中访问我的模块

来自分类Dev

如何在xampp中安装zend Framework 1.12.9?

来自分类Dev

如何在zend Framework 2中配置路由?

来自分类Dev

如何在zend Framework 2中返回对象数组?

来自分类Dev

如何在Zend Framework 2中验证Checkbox?

来自分类Dev

如何在zend Framework 2中自动提交

来自分类Dev

如何在Zend Framework 2中接收文件

来自分类Dev

如何在 Zend Framework 1.12 中设置路由

来自分类Dev

如何在Zend Framework 1中正确调用控制器/动作?

来自分类Dev

如何在Zend Framework 3中为不同的模块设置不同的布局

来自分类Dev

如何在 Zend Framework 3 中自动加载继承的学说实体?

来自分类Dev

如何在我们的应用程序中给出zend库路径?(在zend Framework 2.3中)

来自分类Dev

doctrine-extensions可上载,如何在Zend Framework 2中使用?

来自分类Dev

如何在Zend Framework 2中编写和使用配置文件

来自分类Dev

如何在Zend Framework 2中注册自定义水化器?

来自分类Dev

如何在Zend Framework 2中向表单添加错误消息?

来自分类Dev

如何在Zend Framework 2中的表单字段集中使用服务?

来自分类Dev

如何在Zend Framework 1中使用模板引擎(胡子,车把)?

来自分类Dev

如何在Zend Framework 2中通过AJAX表单上传文件?

来自分类Dev

如何在Zend Framework 2.2.4中添加类和ID以形成元素

来自分类Dev

如何在控制器的Zend Framework 2中禁用字段过滤器?

来自分类Dev

如何在准则2和zend Framework 2中使用缓存?

来自分类Dev

git如何在Zend Framework 2中包括供应商目录

Related 相关文章

  1. 1

    如何在Zend Framework Controller中访问全局变量

  2. 2

    如何在 Zend Framework 3 中实现 CSRF 保护?

  3. 3

    如何在 Zend Framework 3 中声明全局常量?

  4. 4

    如何在zend framework 2中创建工厂?

  5. 5

    如何在zend Framework 2中返回对象数组?

  6. 6

    如何在Zend Framework表单中添加id属性?

  7. 7

    如何在Zend Framework 1.12中访问我的模块

  8. 8

    如何在xampp中安装zend Framework 1.12.9?

  9. 9

    如何在zend Framework 2中配置路由?

  10. 10

    如何在zend Framework 2中返回对象数组?

  11. 11

    如何在Zend Framework 2中验证Checkbox?

  12. 12

    如何在zend Framework 2中自动提交

  13. 13

    如何在Zend Framework 2中接收文件

  14. 14

    如何在 Zend Framework 1.12 中设置路由

  15. 15

    如何在Zend Framework 1中正确调用控制器/动作?

  16. 16

    如何在Zend Framework 3中为不同的模块设置不同的布局

  17. 17

    如何在 Zend Framework 3 中自动加载继承的学说实体?

  18. 18

    如何在我们的应用程序中给出zend库路径?(在zend Framework 2.3中)

  19. 19

    doctrine-extensions可上载,如何在Zend Framework 2中使用?

  20. 20

    如何在Zend Framework 2中编写和使用配置文件

  21. 21

    如何在Zend Framework 2中注册自定义水化器?

  22. 22

    如何在Zend Framework 2中向表单添加错误消息?

  23. 23

    如何在Zend Framework 2中的表单字段集中使用服务?

  24. 24

    如何在Zend Framework 1中使用模板引擎(胡子,车把)?

  25. 25

    如何在Zend Framework 2中通过AJAX表单上传文件?

  26. 26

    如何在Zend Framework 2.2.4中添加类和ID以形成元素

  27. 27

    如何在控制器的Zend Framework 2中禁用字段过滤器?

  28. 28

    如何在准则2和zend Framework 2中使用缓存?

  29. 29

    git如何在Zend Framework 2中包括供应商目录

热门标签

归档