laravel foreach return Multi arrays










1















My foreach return a different array when there is different $Tag
i need My Foreach to return all tasks in 1 array not multi because I can't sort them correctly



@foreach ($Paths->pathtags as $Tag)
$Tag->name
@foreach ($Tag->Tasks as $Task)

$Task->id
$Task->name
@endforeach
@endforeach


in Example



Tag Name : Tag1 , Tag2

Task : id 11

Task Name : Task number 1

................................................



Tag Name : Tag4 , Tag6

Task : id 7

Task Name : Task number 2



.................
Tag Name : Tag4 , Tag6

Task : id 8

Task Name : Task number 3



So if the Tags is different I can't sort them only tasks with same tags
is able to be sort










share|improve this question

















  • 1





    This is very confusing... Could you give some more info, how you retrieve the data and what you're ctually trying to accomplish? foreach doesn't return the multiple arrays... that's the way you built your data structure or retrieve the data from the DB

    – Edwin Krause
    Nov 14 '18 at 19:01












  • ^ I can't quite understand what you're trying to accomplish, but it sounds like this might be a candidate for one or more helpers built-in with Laravel collections. For example, the flatten function.

    – Sheng Slogar
    Nov 14 '18 at 19:06











  • Give an example of the actual behavior and the desired behavior.

    – Laerte
    Nov 14 '18 at 19:09















1















My foreach return a different array when there is different $Tag
i need My Foreach to return all tasks in 1 array not multi because I can't sort them correctly



@foreach ($Paths->pathtags as $Tag)
$Tag->name
@foreach ($Tag->Tasks as $Task)

$Task->id
$Task->name
@endforeach
@endforeach


in Example



Tag Name : Tag1 , Tag2

Task : id 11

Task Name : Task number 1

................................................



Tag Name : Tag4 , Tag6

Task : id 7

Task Name : Task number 2



.................
Tag Name : Tag4 , Tag6

Task : id 8

Task Name : Task number 3



So if the Tags is different I can't sort them only tasks with same tags
is able to be sort










share|improve this question

















  • 1





    This is very confusing... Could you give some more info, how you retrieve the data and what you're ctually trying to accomplish? foreach doesn't return the multiple arrays... that's the way you built your data structure or retrieve the data from the DB

    – Edwin Krause
    Nov 14 '18 at 19:01












  • ^ I can't quite understand what you're trying to accomplish, but it sounds like this might be a candidate for one or more helpers built-in with Laravel collections. For example, the flatten function.

    – Sheng Slogar
    Nov 14 '18 at 19:06











  • Give an example of the actual behavior and the desired behavior.

    – Laerte
    Nov 14 '18 at 19:09













1












1








1








My foreach return a different array when there is different $Tag
i need My Foreach to return all tasks in 1 array not multi because I can't sort them correctly



@foreach ($Paths->pathtags as $Tag)
$Tag->name
@foreach ($Tag->Tasks as $Task)

$Task->id
$Task->name
@endforeach
@endforeach


in Example



Tag Name : Tag1 , Tag2

Task : id 11

Task Name : Task number 1

................................................



Tag Name : Tag4 , Tag6

Task : id 7

Task Name : Task number 2



.................
Tag Name : Tag4 , Tag6

Task : id 8

Task Name : Task number 3



So if the Tags is different I can't sort them only tasks with same tags
is able to be sort










share|improve this question














My foreach return a different array when there is different $Tag
i need My Foreach to return all tasks in 1 array not multi because I can't sort them correctly



@foreach ($Paths->pathtags as $Tag)
$Tag->name
@foreach ($Tag->Tasks as $Task)

$Task->id
$Task->name
@endforeach
@endforeach


in Example



Tag Name : Tag1 , Tag2

Task : id 11

Task Name : Task number 1

................................................



Tag Name : Tag4 , Tag6

Task : id 7

Task Name : Task number 2



.................
Tag Name : Tag4 , Tag6

Task : id 8

Task Name : Task number 3



So if the Tags is different I can't sort them only tasks with same tags
is able to be sort







php laravel loops laravel-5 foreach






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 14 '18 at 18:55









Kareem ElsharkawyKareem Elsharkawy

1199




1199







  • 1





    This is very confusing... Could you give some more info, how you retrieve the data and what you're ctually trying to accomplish? foreach doesn't return the multiple arrays... that's the way you built your data structure or retrieve the data from the DB

    – Edwin Krause
    Nov 14 '18 at 19:01












  • ^ I can't quite understand what you're trying to accomplish, but it sounds like this might be a candidate for one or more helpers built-in with Laravel collections. For example, the flatten function.

    – Sheng Slogar
    Nov 14 '18 at 19:06











  • Give an example of the actual behavior and the desired behavior.

    – Laerte
    Nov 14 '18 at 19:09












  • 1





    This is very confusing... Could you give some more info, how you retrieve the data and what you're ctually trying to accomplish? foreach doesn't return the multiple arrays... that's the way you built your data structure or retrieve the data from the DB

    – Edwin Krause
    Nov 14 '18 at 19:01












  • ^ I can't quite understand what you're trying to accomplish, but it sounds like this might be a candidate for one or more helpers built-in with Laravel collections. For example, the flatten function.

    – Sheng Slogar
    Nov 14 '18 at 19:06











  • Give an example of the actual behavior and the desired behavior.

    – Laerte
    Nov 14 '18 at 19:09







1




1





This is very confusing... Could you give some more info, how you retrieve the data and what you're ctually trying to accomplish? foreach doesn't return the multiple arrays... that's the way you built your data structure or retrieve the data from the DB

– Edwin Krause
Nov 14 '18 at 19:01






This is very confusing... Could you give some more info, how you retrieve the data and what you're ctually trying to accomplish? foreach doesn't return the multiple arrays... that's the way you built your data structure or retrieve the data from the DB

– Edwin Krause
Nov 14 '18 at 19:01














^ I can't quite understand what you're trying to accomplish, but it sounds like this might be a candidate for one or more helpers built-in with Laravel collections. For example, the flatten function.

– Sheng Slogar
Nov 14 '18 at 19:06





^ I can't quite understand what you're trying to accomplish, but it sounds like this might be a candidate for one or more helpers built-in with Laravel collections. For example, the flatten function.

– Sheng Slogar
Nov 14 '18 at 19:06













Give an example of the actual behavior and the desired behavior.

– Laerte
Nov 14 '18 at 19:09





Give an example of the actual behavior and the desired behavior.

– Laerte
Nov 14 '18 at 19:09












1 Answer
1






active

oldest

votes


















0














I think you are trying to flatten the relationship Tasks.
You can override the toArray function in your model, so you will format the returned value in your controller:



In your Controller:



$results = YourModel::with('Tasks')->get()
$Paths = $results->toArray();



In your Model



public function toArray()

return [
...
'taskId' => $this->Tasks->id,
'taskName' => $this->Tasks->name,
];






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',
    autoActivateHeartbeat: false,
    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%2f53307006%2flaravel-foreach-return-multi-arrays%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    I think you are trying to flatten the relationship Tasks.
    You can override the toArray function in your model, so you will format the returned value in your controller:



    In your Controller:



    $results = YourModel::with('Tasks')->get()
    $Paths = $results->toArray();



    In your Model



    public function toArray()

    return [
    ...
    'taskId' => $this->Tasks->id,
    'taskName' => $this->Tasks->name,
    ];






    share|improve this answer



























      0














      I think you are trying to flatten the relationship Tasks.
      You can override the toArray function in your model, so you will format the returned value in your controller:



      In your Controller:



      $results = YourModel::with('Tasks')->get()
      $Paths = $results->toArray();



      In your Model



      public function toArray()

      return [
      ...
      'taskId' => $this->Tasks->id,
      'taskName' => $this->Tasks->name,
      ];






      share|improve this answer

























        0












        0








        0







        I think you are trying to flatten the relationship Tasks.
        You can override the toArray function in your model, so you will format the returned value in your controller:



        In your Controller:



        $results = YourModel::with('Tasks')->get()
        $Paths = $results->toArray();



        In your Model



        public function toArray()

        return [
        ...
        'taskId' => $this->Tasks->id,
        'taskName' => $this->Tasks->name,
        ];






        share|improve this answer













        I think you are trying to flatten the relationship Tasks.
        You can override the toArray function in your model, so you will format the returned value in your controller:



        In your Controller:



        $results = YourModel::with('Tasks')->get()
        $Paths = $results->toArray();



        In your Model



        public function toArray()

        return [
        ...
        'taskId' => $this->Tasks->id,
        'taskName' => $this->Tasks->name,
        ];







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 14 '18 at 19:12









        buzkallbuzkall

        520411




        520411





























            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.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53307006%2flaravel-foreach-return-multi-arrays%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







            這個網誌中的熱門文章

            How to read a connectionString WITH PROVIDER in .NET Core?

            Node.js Script on GitHub Pages or Amazon S3

            Museum of Modern and Contemporary Art of Trento and Rovereto