社区,多个表在同一页面上接收相同模型"Post"的条目时存在问题。单击页码时,应用程序将更改两个表的页面。
我在AppModel中的伪类中尝试了它,它应该可以工作,但我得到了一个错误,说发生了内部错误(错误500(。我发现对应的SQL语句有一个问题,其中有一行未找到。
在AppModel中:
class PostHood extends Post {
public $useTable = 'posts';
};
该代码使用"class Post extends AppModel"的表"cake_posts"。在控制器中,我试图获得PostHood,如下所示:
$this->paginate['PostHood'] = array(
'conditions' => array('OR' => array(stuff)),
'limit' => 5
);
$this->set('postsHood', $this->paginate('PostHood'));
在视图中有一个foreach循环,使用$postsHood作为$post。也许你有个主意,提前谢谢:(
编辑1:更改代码后,我收到了一些错误通知。也许你知道该做什么。AppModel的更改:
class PostHood extends AppModel {
var $name = 'Post';
public $useTable = 'posts';
};
控制器:
$this->loadModel('PostHood');
$this->paginate = array(
'conditions' => array('OR' =>
array(
array('AND' => array(
array('PostHood.ZIPCODE LIKE' => $userArea . '%'),
array('PostHood.ALTDATE >' => date("Y-m-d")),
array('PostHood.AGENT' => '0'),
array('PostHood.OWNER <>' => $this->UserAuth->getUserId()),
array('PostHood.PARENTID' => '0'),
array('PostHood.ACCEPTED' => '0')
)), [MORE AND ARRAYS]
$this->set('postsHood', $this->paginate('PostHood'));
视图中的相应错误:
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Post.DATE' in 'order clause'
SQL查询:SELECT PostHood
。id
、PostHood
。B/S
、PostHood
。H
、PostHood
。CCD_ 8,PostHood
。MARKET
、PostHood
。DATE
、PostHood
。ALTDATE
、PostHood
。TIME
、PostHood
。INCOME
、PostHood
。ZIPCODE
、PostHood
。ALIAS
、PostHood
。VEHICLE
、PostHood
。DELIVERYAREA
、PostHood
。SPACE
、PostHood
。STREET
、PostHood
。HOUSENUMBER
、PostHood
。NAME
、PostHood
。CART
、PostHood
。TEL
、PostHood
。OWNER
、PostHood
。created
、PostHood
。modified
、PostHood
。AGENT
、PostHood
。EXTRADATA
、PostHood
。PARENTID
、PostHood
。BRATED
、PostHood
。SRATED
、PostHood
。REQUESTED
、PostHood
。从usr_web126986_4
到ACCEPTED
。CCD_ 60为CCD_ 61,其中1=CCD_ 62的1阶。DATE
asc LIMIT 5
很明显,Cake试图用"PostHood"来获取数据,但我真正想使用的表"posts"正在监听"Post.field"。我该如何解决这个问题?感谢:(
你应该试试这样的东西:
$this->paginate = array(
'conditions' => array('OR' => array(stuff)),
'limit' => 5
);
$this->set('postsHood', $this->paginate('PostHood'));
我只是好奇你为什么要构建你的模型来扩展另一个模型。
使用了伟大的插件DataTables。这会覆盖蛋糕分页,并使用JSON来显示结果。
为了将其实现为蛋糕,您需要
1.(用于解释sql语句的cake组件:https://github.com/cnizzdotcom/cakephp-datatable
2.(插件:http://www.datatables.net/index
3.(实施:
$this->paginate = array(
'fields' => array('Model.field1', 'Model.field2'),
'conditions' => array( stuff )
);
$response = $this->DataTable->getResponse();
$this->set('response', $response);
$this->set('_serialize','response');
$encode = json_encode($response);
$this->set('dataTablesData', $encode);
然后您可以获取视图中的数据。