我正在寻找一种方法来检索数据库中的所有模型。然后遍历所有模型并读出name
,firstname
和phonenumber
的值。
到目前为止,我已经得到了这个并且未能通过它:
$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模板。
答案 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>'