Как объединить таблицы базы данных, используя cakePHP? - PullRequest
1 голос
/ 29 января 2011

Теперь я пытаюсь решить эту проблему в течение нескольких часов, и я пробую Google и документацию и читаю ее снова и снова, но, похоже, я не понимаю этого.

Позвольте мне объяснить, что я делаю, но упростить проект, предположим, я веду блог с cakePHP . Я получил эти 3 таблицы, чтобы было проще, мы используем только необходимые поля.

Table: posts
Desc: This table store all our posts
Fields:
postid - Identifier for the post
title - The posts title

Table: sections
Desc: this table contains categories
Fields:
sectionid - Identifier
sectionname - Name

Table: postlinks 
Desc: this table store relations between posts and categories.
Fields:
postid – Post ID to determine what post is linked to what section
sectionid – Section ID to determine the section this post belong to

Позвольте мне теперь попытаться объяснить, чего я хочу достичь с помощью cakePHP, показывая пример с обычными кодами php и SQL:

(обратите внимание, этот код был написан на ходу и может не работать, но он должен дать вам представление о том, что я пытаюсь сделать)

<?php
/**
 *Block of code to fetch all posts
 */
while ( $rows = mysql_fetch_array($query) )
{
 $postid = $rows['postid'];
 /** Join postlinks and sections **/
 $sql = “SELECT sections.*, postlinks.* FROM postlinks
  INNER JOIN sections
  ON postlinks.sectionid = sections.sectionid
  WHERE postlinks.postid = '$postid'”;

 $query = mysql_query($sql);

 print “-- TITLE --”;
 print “-- CONTENT --”;

 print “Posted in “;

 /** Loop all categories **/
 while ( $rows = mysql_fetch_array($query) )
 {
  print $rows['sectionname'] . “ “;
 }
}
?>

А теперь я попытаюсь объяснить словами, чего я пытаюсь достичь:

Когда посетитель просматривает веб-страницу и входит в блог-часть сайта, я хочу перечислить X последних сообщений, и эти сообщения можно поместить в несколько категорий, и мы будем хранить все ссылки на категории в отдельная таблица, и вот где я напичкан, мне удается вывести ссылки, но я не могу присоединиться к таблицам и вычеркнуть название.

Надеюсь, что кто-то может пролить свет на эту проблему, которую я получил, либо указав мне правильное направление и / или покажите мне пример кода.

Как уже упоминалось, я читал документацию и пытался найти ответ, но

1 Ответ

0 голосов
/ 01 сентября 2016
Ассоциация

реализована как объединение в cakephp.следуйте концепции HABTM, т. е. «Имеет и принадлежит многим», сделайте декларацию в вашей модели ассоциации.

объявите ассоциацию в вашем запросе cakephp.

recursive -> -1 или 0 или1 или 2

Чтобы узнать больше об ассоциации, перейдите по этой ссылке введите описание ссылки здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...