Профиль Fuelphp Как логика или пример

Так что я немного потерялся в этой части. На моем сайте я хотел бы дать пользователям возможность лайкать страницы профиля.

Итак, моя логика такова. У меня есть таблица базы данных с именем user_likes, она содержит 3 строки, id, user_id, liked_by.

На фактической странице профиля есть кнопка «Нравится» с классом «Нравится». Когда пользователь нажимает на него, вставляет данные в user likes table и изменяет текст кнопки на отличие, а класс также отличается с помощью ajax. И это та часть, где я застрял.

Итак, в профиле есть has many relation likes, я могу посчитать полученные лайки, но я застрял в той части, как сделать кнопку неактуальной после обновления страницы.

Потому что моя логика была такой (но это неудача): нажмите кнопку, вставьте данные с помощью ajax, измените кнопку с помощью ajax, захватите лайк по идентификатору, и если он равен идентификатору вошедшего в систему пользователя, оставьте кнопку не похожей на другую.

Но поскольку он возвращает список массивов, я не могу этого сделать.

Поэтому я не хочу, чтобы кто-то кодировал это для меня, я просто хотел бы подсказку для этого, если это не большая просьба.


person Side    schedule 18.11.2012    source источник


Ответы (1)


Я видел, что вы разместили тот же вопрос на форуме FuelPHP, поэтому здесь я попытаюсь дать вам другое решение.

Зачем вашему отношению нужны "id, user_id, Liked_by"? Я думаю, вы можете улучшить свою базу данных, немного изменив таблицу.

Читая ваш вопрос, я думаю, что у вас есть такая структура:

// USER TABLE
id
username
... something more

Если вы создадите таблицу с именем «LIKE», у вас будет такая ситуация:

// LIKE
id
created_at
modified_at
... something more

Итак, теперь вы можете создать отношение «многие ко многим» с таблицей с именем «users_likes» с помощью:

// USERS_LIKES 
profile_id   // it wil be related to the user_id, is the user's profile being liked
liker_id     // it will be the user_id of the user that likes the profile

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

person Marco Pace    schedule 19.11.2012