Force eloquent to use mutators during serialization









up vote
0
down vote

favorite












Is there a way to force eloquent to use mutators when serializing data? I am currently converting my app to use vue.js and several fields are computed within the model, which I need to be included, in the serialized data.



EloquentModel - make toArray() utilize mutators



I understand why Taylor does not honour mutators but is there a way to override this behaviour?










share|improve this question





















  • what version of laravel are you using ... do you mean accessors (get mutator)? in modern versions the serialized output uses the accessors/mutators
    – lagbox
    Dec 7 '17 at 12:55















up vote
0
down vote

favorite












Is there a way to force eloquent to use mutators when serializing data? I am currently converting my app to use vue.js and several fields are computed within the model, which I need to be included, in the serialized data.



EloquentModel - make toArray() utilize mutators



I understand why Taylor does not honour mutators but is there a way to override this behaviour?










share|improve this question





















  • what version of laravel are you using ... do you mean accessors (get mutator)? in modern versions the serialized output uses the accessors/mutators
    – lagbox
    Dec 7 '17 at 12:55













up vote
0
down vote

favorite









up vote
0
down vote

favorite











Is there a way to force eloquent to use mutators when serializing data? I am currently converting my app to use vue.js and several fields are computed within the model, which I need to be included, in the serialized data.



EloquentModel - make toArray() utilize mutators



I understand why Taylor does not honour mutators but is there a way to override this behaviour?










share|improve this question













Is there a way to force eloquent to use mutators when serializing data? I am currently converting my app to use vue.js and several fields are computed within the model, which I need to be included, in the serialized data.



EloquentModel - make toArray() utilize mutators



I understand why Taylor does not honour mutators but is there a way to override this behaviour?







php mysql laravel eloquent mutators






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Dec 7 '17 at 9:56









user2834482

87310




87310











  • what version of laravel are you using ... do you mean accessors (get mutator)? in modern versions the serialized output uses the accessors/mutators
    – lagbox
    Dec 7 '17 at 12:55

















  • what version of laravel are you using ... do you mean accessors (get mutator)? in modern versions the serialized output uses the accessors/mutators
    – lagbox
    Dec 7 '17 at 12:55
















what version of laravel are you using ... do you mean accessors (get mutator)? in modern versions the serialized output uses the accessors/mutators
– lagbox
Dec 7 '17 at 12:55





what version of laravel are you using ... do you mean accessors (get mutator)? in modern versions the serialized output uses the accessors/mutators
– lagbox
Dec 7 '17 at 12:55













2 Answers
2






active

oldest

votes

















up vote
1
down vote













Before returning the model, you can do this



$model->setAppends(['mutator_1', 'mutator_2']);
return $model->toArray();


if you want to use it on a collection :



$collection->each(function($model) $model->setAppends(...); );





share|improve this answer



























    up vote
    0
    down vote













    You can define which getters should be serialized like this:



    protected $appends = ['is_admin'];


    More info: Appending Values to JSON






    share|improve this answer




















      Your Answer






      StackExchange.ifUsing("editor", function ()
      StackExchange.using("externalEditor", function ()
      StackExchange.using("snippets", function ()
      StackExchange.snippets.init();
      );
      );
      , "code-snippets");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "1"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f47692245%2fforce-eloquent-to-use-mutators-during-serialization%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      1
      down vote













      Before returning the model, you can do this



      $model->setAppends(['mutator_1', 'mutator_2']);
      return $model->toArray();


      if you want to use it on a collection :



      $collection->each(function($model) $model->setAppends(...); );





      share|improve this answer
























        up vote
        1
        down vote













        Before returning the model, you can do this



        $model->setAppends(['mutator_1', 'mutator_2']);
        return $model->toArray();


        if you want to use it on a collection :



        $collection->each(function($model) $model->setAppends(...); );





        share|improve this answer






















          up vote
          1
          down vote










          up vote
          1
          down vote









          Before returning the model, you can do this



          $model->setAppends(['mutator_1', 'mutator_2']);
          return $model->toArray();


          if you want to use it on a collection :



          $collection->each(function($model) $model->setAppends(...); );





          share|improve this answer












          Before returning the model, you can do this



          $model->setAppends(['mutator_1', 'mutator_2']);
          return $model->toArray();


          if you want to use it on a collection :



          $collection->each(function($model) $model->setAppends(...); );






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Dec 7 '17 at 10:21









          Mathieu Ferre

          1,264322




          1,264322






















              up vote
              0
              down vote













              You can define which getters should be serialized like this:



              protected $appends = ['is_admin'];


              More info: Appending Values to JSON






              share|improve this answer
























                up vote
                0
                down vote













                You can define which getters should be serialized like this:



                protected $appends = ['is_admin'];


                More info: Appending Values to JSON






                share|improve this answer






















                  up vote
                  0
                  down vote










                  up vote
                  0
                  down vote









                  You can define which getters should be serialized like this:



                  protected $appends = ['is_admin'];


                  More info: Appending Values to JSON






                  share|improve this answer












                  You can define which getters should be serialized like this:



                  protected $appends = ['is_admin'];


                  More info: Appending Values to JSON







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 10 at 4:29









                  4unkur

                  6118




                  6118



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.





                      Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                      Please pay close attention to the following guidance:


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f47692245%2fforce-eloquent-to-use-mutators-during-serialization%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      How to how show current date and time by default on contact form 7 in WordPress without taking input from user in datetimepicker

                      Syphilis

                      Darth Vader #20