Drupal后台常用

这篇博客详细介绍了Drupal后台的常见操作,包括获取当前用户ID、处理GET请求、按ID获取数据、进行关联数据查询、更新数据、异常管理和JSON响应。同时,文章还涉及到 Drupal 的日志记录、事务处理和错误处理机制,以及如何创建新数据。
  1. 获取当前用户的id
 $userId = \Drupal::currentUser()->id();
 $userEntity = User::load($userId);

2.接收get请求数据

$uuid = $request->get('uuid');

3.根据id获取数据

$orderItems = \Drupal::entityManager()
     ->getStorage('commerce_order_item')
     ->loadByProperties([
       'uuid' => $uuid
   ]);

4.通过entity获取关联数据(两表通过某个字段进行关联)

//获取关联表的数据
$nodeEntity = $orderItem->get('field_ticket_qrcode')->entity;
//获取关联表的id
$productType = $purchasedEntity->get('type')->target_id;

5.update 数据

$publish[] = ['value' => 'published'];
$orderItem->set('field_state',$publish);
$orderItem->save();

6.异常处理

//code 400
throw new BadRequestHttpException('不存在');

7.返回json数据

return new JsonResponse([
  'field_state' => 'invalid'
]);

8.调用实体的方法

//声明
use Drupal\content_moderation\Entity\ContentModerationState;
//调用
$moderationState = ContentModerationState::loadFromModeratedEntity($node);

9.drupal logger

//notice
\Drupal::logger('dx_order')->notice('qrcode and state save success');
//error
\Drupal::logger('dx_order')->error('error info');

10.事务/错误处理

$transaction = db_transaction();
    try {
   		...
    } catch(\Exception $e) {
      $transaction->rollback();
      throw $e;
    }

11.创建数据

$node = \Drupal\node\Entity\Node::create([
  'type' => 'activity_ticket',
   'title' => 'ticket_qrcode', 
   'field_qrcode' => $order_item->uuid,
   'field_usage_time' => time()
 ]);
 $result = $node->save();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值