Eya*_*yal 17
取决于你想要达到的目标.
如果要对用户进行简单查询,则应使用存储对象的loadByProperties
$users = \Drupal::entityTypeManager()->getStorage('user')->loadByProperties([
'name' => 'bar'
]);
Run Code Online (Sandbox Code Playgroud)
如果您需要使用排序,范围,寻呼机和OR/AND条件组进行更复杂的查询,则应使用实体查询
$ids = \Drupal::entityQuery('user')->condition('name', 'foo')->execute();
$users = User::loadMultiple($ids);
Run Code Online (Sandbox Code Playgroud)
如文档中所述,您可以通过注入Drupal的数据库连接类来查询数据.例如:
use Drupal\Core\Database\Connection;
class DatabaseQueryExample {
protected $connection;
public function __construct(Connection $connection) {
$this->connection = $connection;
}
public function queryExamples() {
// db_query()
$this->connection->query(" ... ");
// db_select()
$this->connection->select(" ... ");
}
}
Run Code Online (Sandbox Code Playgroud)
在Drupal 8.0.x中对db_select,db_insert,db_update等进行了描述,将在Drupal 9.0.0中删除.相反,从容器中获取注入服务的数据库连接,并在其上调用select().例如,$ inject_database-> select($ table,$ alias,$ options);
例如:
$db = \Drupal::database();
$data = $db->select('table_name','t')->fields('t')->execute();
$db->insert();
$db->update();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19721 次 |
| 最近记录: |