Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 拉威尔控制雄辩的事件_Laravel_Laravel 5_Eloquent - Fatal编程技术网

Laravel 拉威尔控制雄辩的事件

Laravel 拉威尔控制雄辩的事件,laravel,laravel-5,eloquent,Laravel,Laravel 5,Eloquent,我有一个设想。我们已将第三方应用程序与我们的laravel应用程序集成。一开始,我们有一个场景,每当创建、更新和删除客户机或项目时,我们都需要向第三方应用程序发送相关数据。例如,如果客户端是在我的web应用程序上创建的,那么我们还需要在第三方应用程序上创建,更新和删除也是如此。所以我在应用程序服务提供商中捕捉到了Laravel雄辩的事件,比如 Client::created(function($client) use($integration) { $integration-&g

我有一个设想。我们已将第三方应用程序与我们的laravel应用程序集成。一开始,我们有一个场景,每当创建、更新和删除客户机或项目时,我们都需要向第三方应用程序发送相关数据。例如,如果客户端是在我的web应用程序上创建的,那么我们还需要在第三方应用程序上创建,更新和删除也是如此。所以我在应用程序服务提供商中捕捉到了Laravel雄辩的事件,比如

Client::created(function($client) use($integration) {
        $integration->sendDataToIntegratedApps('client.create', $client);
});

Client::updated(function($client) use($integration) {
        $integration->sendDataToIntegratedApps('client.update', $client);
});

Client::deleting(function($client) use($integration) {
        $integration->sendDataToIntegratedApps('client.delete', $client);

});
它工作得很好。但现在我们有另一个要求,即无论何时在第三方应用程序上创建/更新/删除客户端,我们也需要在我们的web应用程序上创建/更新/删除客户端

第三方通过webhook发送数据,我们接收数据,当我们尝试在web app上执行创建/更新/删除操作时,也会触发上述事件,并再次将数据发送到第三方应用程序。例如,在第三方应用程序上创建一个客户端,它会将创建的客户端的数据发送到我们的web应用程序。我们在web应用程序上创建客户端。但当创建客户机时,
client::created
事件被触发,数据再次发送到错误的第三方应用程序

所以现在我想要的是


如果在我们的web应用程序上创建了数据,则应触发事件。但如果我们首先从第三方应用程序获取数据,然后创建/更新/删除上述事件,则不应触发。是否有任何方法可以控制此类事件,或者是否有任何其他方法可以完成此任务?

如果您正在使用第三方应用程序请求的用于CRUD的雄辩ORM,它应该再次触发模型事件

您必须为此CRUD(来自第三方的请求)使用查询生成器,然后它不应触发模型事件。或者,您必须设置某种标志来识别来自第三方的请求,并且应该跳过模型事件触发


希望它有意义。

您确定查询生成器不会触发这些事件吗?是的,它不会触发这些事件。在这种情况下,让我试试。也检查一下这个