当我使用FuelPHP ORM使用find(' all')获取所有结果时,它只返回一条记录。
这是我的数据库。 表名ws_config。 (没有主键)
--------------------------
config_name | config_value |
--------------------------
site_name | My Site |
--------------------------
member_allow_register | 1 |
--------------------------
这是我的模特。
class Model_Config extends Orm\Model
{
protected static $_table_name = 'config';
protected static $_primary_key = array();// no PK, need to set PK to empty array.
}
这是我的控制器
class Controller_Account_Register extends \Controller_Basecontroller
{
public function action_index()
{
$config = Model_Config::find('all');
$output['config'] = $config;
// call function below is in base controller. it is just load theme (this view page into main template) nothing special.
return $this->generatePage('front/templates/account/register_v', $output);
}
}
这是我的观点文件。
foreach ($config as $row) {
//print_r($row);
echo $row->config_name;
echo ' = ';
echo $row->config_value;
echo '<br>';
}
结果只是
site_name =我的网站
如何从此数据库表中获取所有结果?要么 如何在何处获得多个结果?
答案 0 :(得分:1)
这里的问题确实是因为@vee说ORM希望你有一个主键分配给你的表。默认情况下,orm中只有一个名为“id”的列。如果您没有指定PK意外行为,例如此。
在桌面上定义主键后,应解决此问题。
最简单的方法是添加一个自动递增的ID列,因为这是orm模型的默认值。
答案 1 :(得分:0)
FuelPHP ORM需要主键才能获得所有结果。
没有PK你只能获得一个结果。
嗯...... :(