Как вы работаете с одним результатом запроса ORM в FuelPHP?

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

Вот мой запрос:

$user = Model_User::find()
    ->where('email_address', Input::post('email_address'))
    ->where('password', Input::post('password'))
    ->limit(1);

Единственный способ, который я нашел для доступа к результатам, — это запустить метод get() для $user и прокрутить результат, но я подумал, что что-то упустил, и что есть более простой способ вернуть $user как единый объект, с которым я могу работать. с, так как я ограничиваю его одним результатом.

Каков наиболее эффективный способ сделать это?


person Chris Schmitz    schedule 17.08.2011    source источник


Ответы (3)


Ты пробовал

$user->get_one()?

person Uku Loskit    schedule 17.08.2011

Вы также можете сделать

$user = Model_User::find_by_email_address_and_password(Input::post('email_address'), Input::post('password'));

Хорошего дня :)

person notrab    schedule 18.10.2012

Уку Лоскит спросит у вас правильный синтаксис. Если вы хотите всегда получать один результат, вы можете объединить код:

$user = Model_User::find()
    ->where('email_address', Input::post('email_address'))
    ->where('password', Input::post('password'))
    ->get_one();

Совет для вас: будьте осторожны, используя непосредственно Input::post('var_name'), лучше использовать валидацию перед сохранением переменных. Другой способ — настроить фреймворк на выполнение некоторого действия, например htmlentities(), для каждой переменной $_GET и $_POST.

person Marco Pace    schedule 09.09.2011