直接从控制器调用单元格



我正在使用 cakephp 3.1.7 并弄清楚如何调用视图单元格或从控制器检索单元格数据。我在 cakephp 文档的帮助下实现了基本单元格,也 http://josediazgonzalez.com/2014/03/20/view-cells/运行良好的文档。但是,当我尝试直接从控制器返回单元格时,出现以下错误。

错误:调用未定义的方法应用\控制器\产品控制器::d ecorate()

这是我所拥有的:

use CakeViewCell;
use CakeORMTableRegistry;
class ProductupdateCell extends Cell
{               
    public function display($options = []){ 
            if (!empty($options['displaylist'])) {
                $this->set('productlist', $options['displaylist']);
                return $this; 
            }else{  
                $category = $this->request->query['category'];              
                $this->loadModel('Products');
                $query   =  $this->Products-> find() 
                                           -> where(['Products.category' => $category])                                             
                                           -> hydrate(false);
                $productlist = $query->toArray();
                $this->set('productlist',$productlist);
                return $this; 
            }       
    }
}

在我的控制器中,

<?php
class ProductsController extends Controller
{
use CellTrait;
public function view($id)
{
    $products = $this->Products->findById($id);        
    $this->set('displaylist', $this->decorate('ProductupdateCell', $products));
}
}

请纠正我出错的地方。使用它根据用户输入的 ajax 请求更新我的产品列表是否有效?我可以有选择地更新视图页面中呈现的特定单元格吗?有没有其他方法可以直接更新单元格。如果这是一个愚蠢的问题,请原谅我。

我正在使用 cakephp 3.1.7 并弄清楚如何调用视图单元格或从控制器检索单元格数据。

这在架构上是错误的。它们应该从视图级别使用。

如果要拥有模块化和抽象的控制器逻辑,请使用 CRUD 插件。或者干脆选择组件。组件是在控制器之间共享的逻辑包。

错误:调用未定义的方法 App\Controller\ProductsController::d ecorate()

在 Controller、CellTrait 和 View 类中都没有这样的方法。我不知道你从哪里得到那个代码,它也不在单元格的文档中。

最新更新