1
問題描述
我一直在試圖讓captainhook爲一個模型,卻不能這樣做。 Captainhook是一個php庫,它允許我們添加網址和雄辯或自定義事件,以將事件數據發送到我們根據事件指定爲HTTP請求的URL。Laravel - 爲模型eloquent.saved事件不會被炒魷魚
我不知道我在哪裏犯了一個錯誤,但我認爲Laravel沒有解僱eloquent.saved
或任何其他事件。我遵循自述文件中提到的所有確切說明。
這裏是我的項目文件可能有助於解決該問題:
任何幫助是極大的讚賞。
PHP人員鉤:列表
+----+-----------+------------------------+----------------------------+
| id | tenant_id | url | event |
+----+-----------+------------------------+----------------------------+
| 7 | | http://localhost:10000 | eloquent.saved \App\Vessel |
+----+-----------+------------------------+----------------------------+
composer.json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": [
"framework",
"laravel"
],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "5.2.39",
"league/flysystem-aws-s3-v3": "~1.0",
"venturecraft/revisionable": "1.*",
"maknz/slack": "^1.7",
"phpmailer/phpmailer": "^5.2",
"snowfire/beautymail": "dev-master",
"mpociot/captainhook": "~2.0",
"doctrine/dbal": "^2.5",
"predis/predis": "^1.1",
"torann/currency": "^0.3.0",
"yajra/laravel-datatables-oracle": "~6.0"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"symfony/css-selector": "2.8.*|3.0.*",
"symfony/dom-crawler": "2.8.*|3.0.*"
},
"autoload": {
"classmap": [
"database",
"app/Libraries/ImageUploaderPHP"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/Support/helpers.php"
]
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"scripts": {
"post-root-package-install": [
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall",
"php artisan optimize"
],
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan optimize"
]
},
"config": {
"preferred-install": "dist",
"process-timeout": 0
}
}
.ENV
APP_ENV=local
APP_DEBUG=true
APP_KEY=1yoaL71DDzGvey0BwVy25hySFMdBaEoA
DB_HOST=127.0.0.1
DB_DATABASE=myfyba
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_DRIVER=redis
REDIS_HOST=localhost
....
配置/ captain_hook.php
<?php
/**
* This file is part of CaptainHook arrrrr.
*
* @license MIT
*/
return [
/*
|--------------------------------------------------------------------------
| Event listeners
|--------------------------------------------------------------------------
|
| This array allows you to define all events that Captain Hook should
| listen for in the application. By default, the Captain will just
| respond to eloquent events, but you may edit this as you like.
*/
'listeners' => ['eloquent.*'],
/*
|--------------------------------------------------------------------------
| Webhook filter closure
|--------------------------------------------------------------------------
|
| If your webhooks are scoped to a tenant_id, you can modify
| this filter function to return only the webhooks for your
| tenant. This function is applied as a collection filter.
| The tenant_id field can be used for verification.
|
*/
'filter' => function ($webhook) {
return true;
},
/*
|--------------------------------------------------------------------------
| Webhook data transformer
|--------------------------------------------------------------------------
|
| The data transformer is a simple function that allows you to take the
| subject data of an event and convert it to a format that will then
| be posted to the webhooks. By default, all data is json encoded.
| The second argument is the Webhook that was triggered in case
| you want to transform the data in different ways per hook.
|
| You can also use the 'Foo\[email protected]' notation if you want.
|
*/
'transformer' => function ($eventData, $webhook) {
return json_encode($eventData);
},
/*
|--------------------------------------------------------------------------
| Webhook response callback
|--------------------------------------------------------------------------
|
| The response callback can be used if you want to trigger
| certain actions depending on the webhook response.
| This is unused by default.
|
| You can also use the 'Foo\[email protected]' notation if you want.
|
*/
'response_callback' => function ($webhook, $response) {
// Handle custom response status codes, ...
},
/*
|--------------------------------------------------------------------------
| Logging configuration
|--------------------------------------------------------------------------
|
| Captain Hook ships with built-in logging to allow you to store data
| about the requests that you have made in a certain time interval.
*/
'log' => [
'active' => true,
'storage_quantity' => 50,
],
];
謝謝!我會試一試並接受。 –
+1該死的工作。非常感謝。你能告訴我你從文檔或其他地方學到了什麼嗎? –
'Illuminate \ Database \ Eloquent \ Model @ fireModelEvent' ...'$ event =「eloquent。{$ event}:」.static :: class;'處理觸發事件,所以它通過雄辯命名。 – lagbox