Только начал использовать Kohana ... Есть несколько вопросов - PullRequest
1 голос
/ 29 января 2010

Я только начал использовать Kohana пару дней назад, и у меня есть несколько вопросов, на которые я не могу найти ответ где-либо.

Используя ORM, как вы можете упаковать информацию перед отправкой? Если у меня есть модель пользователя, и у каждого пользователя есть имя пользователя, адрес электронной почты, дата рождения и т. Д. ... как я могу упаковать информацию (например, добавить возраст пользователя в качестве свойства), прежде чем отправить ее на контроллер?

Снова используя ORM, я вижу, что если вы выбираете пользователя, вы также можете выбрать все, что связано с этим пользователем (например, статьи, комментарии и т. Д.). Как вы можете заказать эту связанную информацию перед отправкой на контроллер?

есть:

<?php
$user = ORM::factory('user', $id);
$user->articles; // holds all articles belonging to a user.

// how can you order those articles dynamically?

Как вы можете получить информацию о пользователе, который вошел в систему? Используете ли вы Auth (Auth::instance()->get_user()), или есть другой способ?

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

Спасибо.

Редактировать: Еще один вопрос. Используя ORM, я хочу иметь возможность загружать все опубликованные статьи, в которых пользователь оставил комментарий.

таблица комментариев

comment_id
user_id
article_id
etc....

Используя ORM, я могу получить доступ ко всем статьям, опубликованным пользователем, но как я могу получить доступ ко всем статьям, в которых пользователь прокомментировал?

Спасибо

1 Ответ

1 голос
/ 29 января 2010

Если вы используете Kohana v3, вы можете заказать записи следующим образом:

$articles = ORM::factory('user', $id)->articles
                                     ->order_by('date', 'DESC')
                                     ->find_all();

Если вы используете Kohana v2, то же самое можно сделать с помощью:

$articles = ORM::factory('user', $id)->orderby('date', 'DESC')
                                     ->articles;

И вы были правы относительно доступа к записи пользователя через Auth::instance()->get_user() (если вы используете драйвер ORM Auth)

...