Php 每个挂钩需要有条件的M2O入口
我目前正在构建一个简单的产品管理,它使用状态跟踪产品状态生命周期。我最近添加了一个名为“handles”的新表,它只是Php 每个挂钩需要有条件的M2O入口,php,directus,Php,Directus,我目前正在构建一个简单的产品管理,它使用状态跟踪产品状态生命周期。我最近添加了一个名为“handles”的新表,它只是product\u id和handle(简单文本输入)。为简单起见: 我已经创建了一个hook.php文件,该文件已经加载并运行 $filter=功能(有效负载$Payload){ $container=Application::getInstance()->getContainer(); $itemsService=新的itemsService($container); $i
product\u id
和handle
(简单文本输入)。为简单起见:
我已经创建了一个hook.php文件,该文件已经加载并运行
$filter=功能(有效负载$Payload){
$container=Application::getInstance()->getContainer();
$itemsService=新的itemsService($container);
$item=$itemsService->find('products',$payload->get('id'),['fields'=>'状态,句柄。*']);
$statuss=['detailed'];
if(在_数组中($item['data']['status'],$statuss)| |在_数组中($payload->get('status'),$statuss)){
如果(!$item['data']['handles']| |!count($item['data']['handles'])){
抛出新的UnprocessableEntityException('无法发布没有句柄的产品!');
}
返回$payload;
}
只要更新的顺序是这样的,它就能完美地工作:
句柄
并保存产品count()
不是零,所以上面的检查不会抛出UnprocessableEntityException
)
但如果我的步骤是这样的:
产品
,状态为“详细”(无任何句柄
)我不知道如何编写钩子,所以我可以检查使用
item.create.products:before
时未保存的关系字段。
在将关系字段保存到数据库时,有没有提示如何检查该字段
提前谢谢!欢迎任何帮助