我有一个返回单个结果的查询,我想知道是否有办法访问该结果的属性而不必循环遍历它,因为我将其限制为单个结果。
这是我的问题:
$user = Model_User::find()
->where('email_address', Input::post('email_address'))
->where('password', Input::post('password'))
->limit(1);
我发现访问结果的唯一方法是在get()
上运行$user
方法并循环显示结果,但我认为我遗漏了一些内容并且有一种更简单的方法将$user
作为我可以使用的单个对象返回,因为我将其限制为单个结果。
最有效的方法是什么?
答案 0 :(得分:7)
你试过吗
$user->get_one()
?
答案 1 :(得分:2)
您也可以
$user = Model_User::find_by_email_address_and_password(Input::post('email_address'), Input::post('password'));
度过愉快的一天:)
答案 2 :(得分:0)
Uku Loskit问你正确的语法。 如果要始终检索单个结果,可以合并代码:
$user = Model_User::find()
->where('email_address', Input::post('email_address'))
->where('password', Input::post('password'))
->get_one();
给你的建议:小心使用直接输入:: post('var_name'),最好在保存变量之前使用验证。 另一种方法是将框架设置为对每个$ _GET和$ _POST变量执行某些操作,例如htmlentities()。