При первом переполнении стека, поэтому, если я пишу неправильно, пожалуйста, дайте мне знать. Так что мой сайт разработан в cakePHP 3.0. В настоящее время у меня есть статьи на сайте, и я хотел бы, чтобы пользователи могли переходить от статьи к статье. Я должен упомянуть, что у меня это работало с методом get (), но из-за того, как написан мой контроллер, мне нужно использовать запрос select с условием. Я могу создать статью и не публиковать ее до будущей даты. Так что этот код должен игнорировать все, что еще не было опубликовано, чтобы пользователи не видели эти статьи.
Супер новичок с PHP в целом, не говоря уже о фреймворке CakePHP MVC, так что потерпите меня :)
В моем контроллере в функции публичного просмотра у меня есть это:
//get story id for next and previous buttons
$todays_date = date('Y-m-d H:i:s');
$this->loadModel('Story');
$storyID = $story->id;
$storyNextID = $storyID + 1;
$storyPreviousID = $storyID - 1;
$storyNext = $this->Story->find()->select('Story.id')->where(['Story.pub_date <' => $todays_date])->first();
$this->set('storyNext', $storyNext);
$storyPrevious = $this->Story->find()->select('Story.id')->where(['Story.pub_date <' => $todays_date])->first();
$this->set('storyPrevious', $storyPrevious);
И, на мой взгляд, у меня есть:
<div class="next row" align="center">
<?php
if(!empty($storyPrevious)) {
echo '<a class="btn btn-secondary" style="width:50%" href="' .BASE_URL. '/' .$storyPrevious->slug. '" role="button">Previous Story</a>';
}
if(!empty($storyNext)) {
echo '<a class="btn btn-secondary" style="width:50%" href="' .BASE_URL. '/' .$storyNext->slug. '" role="button">Next Story</a>';
}
?>
</div>
Я чувствую, что я очень близок, так как больше не получаю ошибок на своем сайте разработки. Но ссылка просто отправляет меня на домашнюю страницу моего сайта.
Спасибо за помощь!