如何将mongodb数据显示到yii2表?
我想将MongoDB用户收集数据显示到yii2表格中。当我运行时,它不显示任何数据输出(我在用户集合中有5行) 我是mongodb的新手。当我显示来自mysql的数据时,我尝试了使用通常的格式来显示它(只有我更改的查询)。它似乎工作不好,但没有显示任何错误消息 这是我的代码: Model/User.php如何将mongodb数据显示到yii2表?,mongodb,yii2,Mongodb,Yii2,我想将MongoDB用户收集数据显示到yii2表格中。当我运行时,它不显示任何数据输出(我在用户集合中有5行) 我是mongodb的新手。当我显示来自mysql的数据时,我尝试了使用通常的格式来显示它(只有我更改的查询)。它似乎工作不好,但没有显示任何错误消息 这是我的代码: Model/User.php class User extends ActiveRecord implements IdentityInterface { public $_id; public $username
class User extends ActiveRecord implements IdentityInterface
{
public $_id;
public $username;
public $password;
public static function collectionName()
{ return ['latihan', 'User']; }
public function attributes()
{
return [
'_id',
'id',
'username',
'password',
'role',
];
}
public function fields()
{
return [
'_id' => function() { return (string)$this->_id; },
'id',
'username',
'password',
'role',
];
}
public function rules()
{
return [
['role', 'default', 'value' => 10],
[['_id', 'username', 'password'], 'safe'],
];
}
public static function findOne($condition)
{
$query = new Query();
$data = $query->from(static::collectionName())->where($condition)->one();
$user = new User();
$user->id = $data['id'];
$user->username = $data['username'];
$user->password = $data['password'];
$user->role = $data['role'];
return $user;
}
HomeController.php
public function actionAbout()
{
$user = User::find()->all();
return $this->render('about', ['model' => $user]);
}
}
关于.php
<table class="table table-bordered">
<thead>
<tr>
<th>#</th>
<th>Username</th>
<th>Password</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php $i = 1; foreach($model as $field){ ?>
<tr>
<?php $username =$field->username; ?>
<td><?php echo $i++; ?></td>
<td><?= $field->username; ?></td>
<td><?= $field->password; ?></td>
<td>
<a href="<?php echo Url::to(['/home/editabout']).'?id='.$field->id;?>"> Update</a> |
<a href="<?php echo Url::to(['/home/deleteabout']).'?id='.$field->id; ?>"> Delete</a>
</td>
</tr>
<?php } ?>
</tbody>
</table>
#
用户名
密码
阿克西
|
来自
首先你必须加上
在composer.json文件中,使用以下命令更新composercomposer update
然后可以编辑main local.php文件并覆盖db组件
return [
//....
'components' => [
'db' => [
'class' => '\yii\mongodb\Connection',
'dsn' => 'mongodb://@localhost:27017/mydatabase',
'options' => [
"username" => "Username",
"password" => "Password"
]
],
],
];
+如果您想同时使用mysql(Deafolt连接)和mongodb,您不能覆盖db组件,只需添加mongodb即可
return [
//....
'components' => [
'db' => [
.... mysql db config (default)
],
'mongodb' => [
'class' => '\yii\mongodb\Connection',
'dsn' => 'mongodb://@localhost:27017/mydatabase',
'options' => [
"username" => "Username",
"password" => "Password"
]
],
],
];
@Hanifbudiari我看到了你的数据库,也许你有空的值我很确定如果我的数据库不是空的,我有5行,每个值在用户中document@HanifBudiarti否,请检查您的列是否为空或我的列是否为非空。这不起作用,因为您在
User::findOne()
中实现了这些字段的设置,但在控制器中,您使用的是User::find()->all()
。