blakej115 / magic-forms

Create easy (and almost magic) AJAX forms
https://octobercms.com/plugin/blakejones-magicforms
MIT License
6 stars 4 forks source link

"Call to undefined method" when try to submit a message form #2

Closed haralake closed 1 year ago

haralake commented 1 year ago

On latest Octobercms v3.1.3 with translate plugin v2.0 (Multisite), when try to submit a message using contact form (Blake Jones Magic forms plugin) i get this error:

"Call to undefined method RainLab\Translate\Models\Message::setContext()" on line 71 of /var/www/octobercms3.local/htdocs/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php"

Full stack trace:

BadMethodCallException: Call to undefined method RainLab\Translate\Models\Message::setContext() in /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:71
Stack trace:
#0 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php(36): Illuminate\Database\Eloquent\Model::throwBadMethodCallException()
#1 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2230): Illuminate\Database\Eloquent\Model->forwardCallTo()
#2 /var/www/octobercms.local/htdocs/vendor/october/rain/src/Extension/ExtendableTrait.php(511): Illuminate\Database\Eloquent\Model->__call()
#3 /var/www/octobercms.local/htdocs/vendor/october/rain/src/Database/Model.php(305): October\Rain\Database\Model->extendableCall()
#4 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2242): October\Rain\Database\Model->__call()
#5 /var/www/octobercms.local/htdocs/plugins/blakejones/magicforms/classes/MagicForm.php(71): Illuminate\Database\Eloquent\Model::__callStatic()
#6 /var/www/octobercms.local/htdocs/modules/system/traits/DependencyMaker.php(29): BlakeJones\MagicForms\Classes\MagicForm->onFormSubmit()
#7 /var/www/octobercms.local/htdocs/modules/cms/classes/ComponentBase.php(197): Cms\Classes\ComponentBase->makeCallMethod()
#8 /var/www/octobercms.local/htdocs/modules/cms/classes/Controller.php(862): Cms\Classes\ComponentBase->runAjaxHandler()
#9 /var/www/octobercms.local/htdocs/modules/cms/classes/Controller.php(714): Cms\Classes\Controller->runAjaxHandler()
#10 /var/www/octobercms.local/htdocs/modules/cms/classes/Controller.php(365): Cms\Classes\Controller->execAjaxHandlers()
#11 /var/www/octobercms.local/htdocs/modules/cms/classes/Controller.php(218): Cms\Classes\Controller->runPage()
#12 /var/www/octobercms.local/htdocs/modules/cms/classes/CmsController.php(64): Cms\Classes\Controller->run()
#13 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Cms\Classes\CmsController->run()
#14 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\Routing\Controller->callAction()
#15 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate\Routing\ControllerDispatcher->dispatch()
#16 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Routing/Route.php(204): Illuminate\Routing\Route->runController()
#17 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Routing/Router.php(725): Illuminate\Routing\Route->run()
#18 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#19 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#20 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#21 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#22 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
#23 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#24 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#25 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Session\Middleware\StartSession->handle()
#26 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#27 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#28 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#29 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#30 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#31 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\Pipeline\Pipeline->then()
#32 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Routing/Router.php(703): Illuminate\Routing\Router->runRouteWithinStack()
#33 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Routing/Router.php(667): Illuminate\Routing\Router->runRoute()
#34 /var/www/octobercms.local/htdocs/vendor/october/rain/src/Router/CoreRouter.php(31): Illuminate\Routing\Router->dispatchToRoute()
#35 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): October\Rain\Router\CoreRouter->dispatch()
#36 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#37 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#38 /var/www/octobercms.local/htdocs/vendor/october/rain/src/Foundation/Http/Middleware/CheckForMaintenanceMode.php(23): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#39 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): October\Rain\Foundation\Http\Middleware\CheckForMaintenanceMode->handle()
#40 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#41 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\Pipeline\Pipeline->then()
#42 /var/www/octobercms.local/htdocs/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#43 /var/www/octobercms.local/htdocs/index.php(43): Illuminate\Foundation\Http\Kernel->handle()
#44 {main}

my composer:

..... "require": { "php": "^8.0.2", "october/rain": "^3.1", "laravel/framework": "^9.0", "october/all": "^3.1", "rainlab/user-plugin": "^1.6", "rainlab/blog-plugin": "^1.6", "rainlab/mailchimp-plugin": "^1.0", "rainlab/translate-plugin": "^2.0", "rainlab/pages-plugin": "^1.5", "blakejones/magicforms-plugin": "^1.6" }, ......

daftspunk commented 1 year ago

Fix proposed in #3

kombimedia commented 1 year ago

Hi there,

I'm still seeing this error. Only in the staging environment though, not in the local environment. Both installations are running the same version of OctoberCMS, translate plugin and magic forms.

OctoberCMS: 3.1.16 Translate: 2.0.6 Magic Forms: 1.6.4

`BadMethodCallException: Call to undefined method RainLab\Translate\Models\Message::setContext() in /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:71 Stack trace:

0 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php(36): Illuminate\Database\Eloquent\Model::throwBadMethodCallException()

1 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2321): Illuminate\Database\Eloquent\Model->forwardCallTo()

2 /home/forge/ngatipukenga.staging-site.nz/vendor/october/rain/src/Extension/ExtendableTrait.php(511): Illuminate\Database\Eloquent\Model->__call()

3 /home/forge/ngatipukenga.staging-site.nz/vendor/october/rain/src/Database/Model.php(305): October\Rain\Database\Model->extendableCall()

4 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2333): October\Rain\Database\Model->__call()

5 /home/forge/ngatipukenga.staging-site.nz/plugins/martin/forms/classes/MagicForm.php(71): Illuminate\Database\Eloquent\Model::__callStatic()

6 /home/forge/ngatipukenga.staging-site.nz/modules/system/traits/DependencyMaker.php(29): Martin\Forms\Classes\MagicForm->onFormSubmit()

7 /home/forge/ngatipukenga.staging-site.nz/modules/cms/classes/ComponentBase.php(197): Cms\Classes\ComponentBase->makeCallMethod()

8 /home/forge/ngatipukenga.staging-site.nz/modules/cms/classes/Controller.php(862): Cms\Classes\ComponentBase->runAjaxHandler()

9 /home/forge/ngatipukenga.staging-site.nz/modules/cms/classes/Controller.php(714): Cms\Classes\Controller->runAjaxHandler()

10 /home/forge/ngatipukenga.staging-site.nz/modules/cms/classes/Controller.php(365): Cms\Classes\Controller->execAjaxHandlers()

11 /home/forge/ngatipukenga.staging-site.nz/modules/cms/classes/Controller.php(218): Cms\Classes\Controller->runPage()

12 /home/forge/ngatipukenga.staging-site.nz/modules/cms/classes/CmsController.php(65): Cms\Classes\Controller->run()

13 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Cms\Classes\CmsController->run()

14 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\Routing\Controller->callAction()

15 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Routing/Route.php(260): Illuminate\Routing\ControllerDispatcher->dispatch()

16 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route->runController()

17 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Routing/Router.php(725): Illuminate\Routing\Route->run()

18 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Routing\Router->Illuminate\Routing{closure}()

19 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()

20 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Routing\Middleware\SubstituteBindings->handle()

21 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()

22 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\View\Middleware\ShareErrorsFromSession->handle()

23 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()

24 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()

25 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Session\Middleware\StartSession->handle()

26 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()

27 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()

28 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()

29 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Cookie\Middleware\EncryptCookies->handle()

30 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()

31 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\Pipeline\Pipeline->then()

32 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Routing/Router.php(703): Illuminate\Routing\Router->runRouteWithinStack()

33 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Routing/Router.php(667): Illuminate\Routing\Router->runRoute()

34 /home/forge/ngatipukenga.staging-site.nz/vendor/october/rain/src/Router/CoreRouter.php(31): Illuminate\Routing\Router->dispatchToRoute()

35 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): October\Rain\Router\CoreRouter->dispatch()

36 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http{closure}()

37 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()

38 /home/forge/ngatipukenga.staging-site.nz/vendor/october/rain/src/Foundation/Http/Middleware/CheckForMaintenanceMode.php(23): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()

39 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): October\Rain\Foundation\Http\Middleware\CheckForMaintenanceMode->handle()

40 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()

41 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\Pipeline\Pipeline->then()

42 /home/forge/ngatipukenga.staging-site.nz/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()

43 /home/forge/ngatipukenga.staging-site.nz/index.php(54): Illuminate\Foundation\Http\Kernel->handle()

44 {main}`

Any ideas?

Cheers

daftspunk commented 1 year ago

It's a confusing error since it complains about a missing class, but the code doesn't run if the class is missing...

Try clearing the cache, restarting the web browser, and composer updating. Check that the change in this PR is actually on the server.

kombimedia commented 1 year ago

@daftspunk

Thanks for the suggestions Sam. I have cleared both the browser and application cache, I've restarted the browser, tried a different browser and devices and I've run composer update.

Still seeing the same error. Can confirm the updated BackendHelpers class is on the server.

Any ideas?

Cheers

blakej115 commented 1 year ago

Hi @kombimedia,

I notice evidence that you may be using the old version of Magic Forms, based on the directory shown in the stacktrace:

/plugins/martin/forms/classes/MagicForm.php

Please note that this fork of Magic Forms does not use this directory path.

The directory path of the file in question for this fork of Magic Forms should be:

/plugins/blakejones/magicforms/classes/MagicForm.php

Take an export of all of your current submissions just to be safe, and completely uninstall the Martin/Forms plugin.

Then install the BlakeJones/MagicForms plugin from the October CMS marketplace if you haven't already.

Please let me know if this resolves your issue.

Thanks!

kombimedia commented 1 year ago

Hi @blakej115 @daftspunk ,

All sorted! Thanks Blake and good spotting. When I ran composer update I must have reinstalled the old version of Magic Forms, so both versions were installed.

After removing the old version of Magic Forms the form is processing as expected.

So Sam's suggestions likely did the trick, just that I accidentally reinstalled the old Magic Forms plugin as the final step.

Thanks guys.