0

我有一个返回单个结果的查询,我想知道是否有一种方法可以访问该结果的属性而不必遍历它,因为我将它限制为单个结果。

这是我的查询:

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

我发现访问结果的唯一方法是运行该get()方法$user并循环遍历结果,但我认为我遗漏了一些东西,并且有一种更简单的方法可以$user作为我可以使用的单个对象返回,因为我我将其限制为单个结果。

最有效的方法是什么?

4

3 回答 3

7

你试过了吗

$user->get_one()?

于 2011-08-17T21:01:09.513 回答
2

你也可以做

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

祝你今天过得愉快 :)

于 2012-10-18T15:32:14.280 回答
0

Uku Loskit 问你正确的语法。如果要始终检索单个结果,可以合并代码:

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

给你的建议:直接使用 Input::post('var_name') 时要小心,最好在保存变量之前使用验证。另一种方法是将框架设置为对每个 $_GET 和 $_POST 变量执行某些操作,例如 htmlentities()。

于 2011-09-09T07:15:13.897 回答