检索每个模型并返回三个值

时间:2015-10-27 15:36:27

标签: html model yii2 html-table

我正在寻找一种方法来检索数据库中的所有模型。然后遍历所有模型并读出namefirstnamephonenumber的值。

到目前为止,我已经得到了这个并且未能通过它:

$searchModel = new EmployeeSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);

然后我想在一个简单的HTML表中实现这三个值:

<tr><td>$firstname</td><td>$name</td><td>$phone</td></tr>

该表应该是PDF输出的一部分,所以理想情况下我会将其保存到变量:

$html_table = '<tr><td>$firstname</td><td>$name</td><td>$phone</td></tr>';

我需要为每个符合数据库status = 'active'标准的模型获取此信息。

到目前为止,我只能通过gridView获取表格而不是HTML模板。

2 个答案:

答案 0 :(得分:3)

您实际上并不需要数据提供程序来实现此目的,您可以尝试:

$models = Employee::find()->where(['status'=>'active'])->orderBy('name ASC')->all();
foreach ($models as $model) {
    echo "<tr><td>{$model->firstname}</td><td>{$model->name}</td><td>{$model->phone}</td></tr>";
}

了解详情:http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#querying-data

答案 1 :(得分:1)

你可以得到这样的所有模型:

$employees = Employee::find()
    ->select('firstname, name, phone')
    ->asArray()
    ->where(['status'=>'active'])
    ->all();

通过这种方式,您将获得包含3个选定字段的数组数组,因此现在您只需要使用foreach循环遍历它们并创建表:

$html = '<table>';
foreach($employees as $employee) {
    $html .= '<tr><td>'.$employee['firstname'].'</td><td>'.$employee['name'].'</td><td>'.$employee['phone'].'</td></tr>';
}
$html .= '</table>'