【发布时间】:2011-12-30 06:21:12
【问题描述】:
我是一个 cakephp 初学者,没有太多编码经验。我正在尝试有条件地在 '$this->paginate()' 函数上分配空数组,但它不起作用。以下是我在 LogsController 中的部分代码:
if ($privacyVisible['Title']['privacy'] == 1) {
$this->Log->recursive = 0;
$this->paginate = array(
'limit' => 10,
'order' => array(
'Log.id' => 'desc'
), 'conditions' => array('Title.slug' => $id));
$this->set('logs',$this->paginate());
} else {
$this->Log->recursive = 0;
$this->paginate = array(
'limit' => 10,
'order' => array(
'Log.id' => 'desc'
), 'conditions' => array('1' => '2'));
$this->set('logs',$this->paginate()); //here it should be empty
}
但在我看来,在进行调试之后($logs);在应用 else 条件时,即隐私 = 零,我得到的所有值都返回如下:
app\View\Logs\index.ctp(第 10 行)
Array
(
[0] => Array
(
[Log] => Array
(
[id] => 114
[title_id] => 16
[body] => hi!
[time] => 2011-11-15 21:19:10
)
[Title] => Array
(
[id] =>
[user_id] =>
[logname] =>
[slug] =>
[privacy] =>
)
)
[1] => Array
(
[Log] => Array
(
[id] => 113
[title_id] => 14
[body] => hey!
[time] => 2011-11-15 20:52:52
)
[Title] => Array
(
[id] => 14
[user_id] => 7
[logname] => college
[slug] => college
[privacy] => 1
)
)
[2] => Array
(
[Log] => Array
(
[id] => 112
[title_id] => 12
[body] => hey hi.
[time] => 2011-11-15 20:51:19
)
[Title] => Array
(
[id] =>
[user_id] =>
[logname] =>
[slug] =>
[privacy] =>
)
)
[3] => Array
(
[Log] => Array
(
[id] => 111
[title_id] => 12
[body] => that will be great.
[time] => 2011-11-15 20:51:13
)
[Title] => Array
(
[id] =>
[user_id] =>
[logname] =>
[slug] =>
[privacy] =>
)
)
)
如果它是一个空数组,我愿意在 if(empty($logs)) 上对其进行测试并显示“不允许您”。但目前似乎很难。猜猜看,这里出了什么问题?
【问题讨论】:
-
您能告诉我们您的协会是如何建立的吗? Title 和 Logs(hasOne、hasMany 等)是什么关系?
-
用户拥有多个标题。标题 hasMany Logs.. 这是否澄清了您的问题?
-
我怀疑这是正确的 'conditions' => array('1' => '2')?
-
是的,这是错误的条件,我故意让它与数据库中的任何内容都不匹配,因此不应在 paginate() 中分配任何内容。这是错误的做法吗?
标签: arrays cakephp cakephp-2.0 pagination