- 获取当前用户的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();