spatie / laravel-newsletter

Manage Mailcoach and MailChimp newsletters in Laravel
https://freek.dev/440-easily-integrate-mailchimp-in-laravel-5
MIT License
1.6k stars 233 forks source link

Trying to get property of non-object #6

Closed taytus closed 9 years ago

taytus commented 9 years ago

After following the instructions, I'm stuck with this error

ErrorException in NewsletterList.php line 37: Trying to get property of non-object I'm using Laravel 5.1.9

Thank you!

This is my main controller:

<?php

namespace App\Http\Controllers; use Newsletter; class mainController extends Controller { public function index() { Newsletter::subscribe('rincewind@discworld.com'); } }

And this is my error stack:

in NewsletterList.php line 37
at HandleExceptions->handleError('8', 'Trying to get property of non-object', '/home/vagrant/Code/jobnow/vendor/spatie/laravel-newsletter/src/MailChimp/NewsletterList.php', '37', array('email' => 'rincewind@discworld.com', 'mergeVars' => array(), 'listName' => '', 'listProperties' => array('id' => 'XXXXXXXXXX', 'createCampaign' => array('fromEmail' => '', 'fromName' => '', 'toName' => ''), 'subscribe' => array('emailType' => 'html', 'requireDoubleOptin' => false, 'updateExistingUser' => false), 'unsubscribe' => array('deletePermanently' => false, 'sendGoodbyeEmail' => false, 'sendUnsubscribeEmail' => false)), 'emailType' => 'html', 'requireDoubleOptin' => false, 'updateExistingUser' => false)) in NewsletterList.php line 37
at NewsletterList->subscribe('rincewind@discworld.com', array(), '') in Newsletter.php line 49
at Newsletter->subscribe('rincewind@discworld.com') in Facade.php line 210
at Facade::__callStatic('subscribe', array('rincewind@discworld.com')) in mainController.php line 9
at NewsletterFacade::subscribe('rincewind@discworld.com') in mainController.php line 9
at mainController->index()
at call_user_func_array(array(object(mainController), 'index'), array()) in Controller.php line 256
at Controller->callAction('index', array()) in ControllerDispatcher.php line 164
at ControllerDispatcher->call(object(mainController), object(Route), 'index') in ControllerDispatcher.php line 112
at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 114
at ControllerDispatcher->callWithinStack(object(mainController), object(Route), object(Request), 'index') in ControllerDispatcher.php line 69
at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\mainController', 'index') in Route.php line 201
at Route->runWithCustomDispatcher(object(Request)) in Route.php line 134
at Route->run(object(Request)) in Router.php line 704
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Router.php line 706
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 671
at Router->dispatchToRoute(object(Request)) in Router.php line 631
at Router->dispatch(object(Request)) in Kernel.php line 236
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 50
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 54
at ShareErrorsFromSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 62
at StartSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure))
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 122
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 87
at Kernel->handle(object(Request)) in index.php line 54
Jeemusu commented 9 years ago

The error seems to indicate that the lists object doesn't exist. Have you properly configured the default list details in the config/laravel-newsletter.php config file?

ghost commented 9 years ago

Working fine for Me. No Error. I followed Docs that mention in Package and Works :smile:

taytus commented 9 years ago

@rajlaksh what Laravel version are you using?, I'm using 5.1.9 @Jeemusu this is my config/laravel-newsletter.php

<?php

return [

'mailChimp' => [
    /*
     * The api key of a MailChimp account. You can find yours here:
     * https://us10.admin.mailchimp.com/account/api-key-popup/
     */
    'apiKey' => env('MAILCHIMP_APIKEY')

    /*
     * Here you can define properties of the lists you want to
     * send campaigns.
     */
    'lists' => [

        /*
         * This key is used to identify this list. It can be used
         * in the various methods provided by this package.
         *
         * You can set it to any string you want and you can add
         * as many lists as you want.
         */
        'subscribers' => [

            /*
             * A mail chimp list id. Check the mailchimp docs if you don't know
             * how to get this value:
             * http://kb.mailchimp.com/lists/managing-subscribers/find-your-list-id
             */
            'id' => 'MY_LIST_ID',

            /*
             * These values will be used when creating a new campaign.
             */
            'createCampaign' => [
                'fromEmail' => '',
                'fromName' => '',
                'toName' => ''
            ],

            /*
             * These values will be used when subscribing to a list.
             */
            'subscribe' => [
                'emailType' => 'html',
                'requireDoubleOptin' => false,
                'updateExistingUser' => false
            ],

            /*
             * These values will be used when unsubscribing from a list.
             */
            'unsubscribe' => [
                'deletePermanently' => false,
                'sendGoodbyeEmail' => false,
                'sendUnsubscribeEmail' => false
            ],
        ],
    ],
],

];

freekmurze commented 9 years ago

Did you set MAILCHIMP_APIKEY in your env file?

taytus commented 9 years ago

yes, and the same for 'id' => 'MY_LIST_ID' I just double checked the values and the strings are correct. Edit: Oh wait, no I did not! I just replaced MAILCHIMP_APIKEY with my api key!

taytus commented 9 years ago

It worked!! That was it, I never declared MAILCHIMP_APIKEY on my env file :/ Thank you everyone!

freekmurze commented 9 years ago

:+1:

jayavion commented 8 years ago

i inserted MAILCHIMP_APIKEY in my env file..i still getting same error

freekmurze commented 8 years ago

Do you see the apikey when you output the contents of config('laravel-newsletter) ?