How to parse an array within a query builder's get()












1














I have my Country model and a State Model. Only countries that have states can show states, or return ;



I would like to return this in one hit into my response object, yet I can't wrap my head around getting the id of the current country that is running in the query, I built this just now:



return response()->responseObject([
'code' => 200,
'status' => true,
'message' => 'Retrieved List of Available Countries',
'data' => Country::where('allow_registration', Country::REGISTRATION_ALLOWED)->get([
'id',
'name',
'iso',
'iso3',
'prefix',
'states' => function($query){}
])
]);


And I have another function waiting for this:



public static function getStates($id)
{
$states = State::where('country_id', $id);
return $states ? $states : ;
}


Am I approaching this right? What do I have to put in my sub query function in order for current country ID? Or did I approach this wrong and there is a more eloquent way of implementing?










share|improve this question
























  • does the 'countries' table have state_id and does the 'states' table have country_id? If so I would route model bind and then return the property by creating a hasMany relationship. If you'd like more specifics let me know but the answer below is literally on the right track, just not explained properly.
    – Brad Goldsmith
    Dec 27 at 15:41










  • Hi there. Please try to avoid making gender assumptions about software engineers, as it can be unwelcoming. We tend to trim greetings and salutations anyway. Thank you.
    – halfer
    yesterday


















1














I have my Country model and a State Model. Only countries that have states can show states, or return ;



I would like to return this in one hit into my response object, yet I can't wrap my head around getting the id of the current country that is running in the query, I built this just now:



return response()->responseObject([
'code' => 200,
'status' => true,
'message' => 'Retrieved List of Available Countries',
'data' => Country::where('allow_registration', Country::REGISTRATION_ALLOWED)->get([
'id',
'name',
'iso',
'iso3',
'prefix',
'states' => function($query){}
])
]);


And I have another function waiting for this:



public static function getStates($id)
{
$states = State::where('country_id', $id);
return $states ? $states : ;
}


Am I approaching this right? What do I have to put in my sub query function in order for current country ID? Or did I approach this wrong and there is a more eloquent way of implementing?










share|improve this question
























  • does the 'countries' table have state_id and does the 'states' table have country_id? If so I would route model bind and then return the property by creating a hasMany relationship. If you'd like more specifics let me know but the answer below is literally on the right track, just not explained properly.
    – Brad Goldsmith
    Dec 27 at 15:41










  • Hi there. Please try to avoid making gender assumptions about software engineers, as it can be unwelcoming. We tend to trim greetings and salutations anyway. Thank you.
    – halfer
    yesterday
















1












1








1







I have my Country model and a State Model. Only countries that have states can show states, or return ;



I would like to return this in one hit into my response object, yet I can't wrap my head around getting the id of the current country that is running in the query, I built this just now:



return response()->responseObject([
'code' => 200,
'status' => true,
'message' => 'Retrieved List of Available Countries',
'data' => Country::where('allow_registration', Country::REGISTRATION_ALLOWED)->get([
'id',
'name',
'iso',
'iso3',
'prefix',
'states' => function($query){}
])
]);


And I have another function waiting for this:



public static function getStates($id)
{
$states = State::where('country_id', $id);
return $states ? $states : ;
}


Am I approaching this right? What do I have to put in my sub query function in order for current country ID? Or did I approach this wrong and there is a more eloquent way of implementing?










share|improve this question















I have my Country model and a State Model. Only countries that have states can show states, or return ;



I would like to return this in one hit into my response object, yet I can't wrap my head around getting the id of the current country that is running in the query, I built this just now:



return response()->responseObject([
'code' => 200,
'status' => true,
'message' => 'Retrieved List of Available Countries',
'data' => Country::where('allow_registration', Country::REGISTRATION_ALLOWED)->get([
'id',
'name',
'iso',
'iso3',
'prefix',
'states' => function($query){}
])
]);


And I have another function waiting for this:



public static function getStates($id)
{
$states = State::where('country_id', $id);
return $states ? $states : ;
}


Am I approaching this right? What do I have to put in my sub query function in order for current country ID? Or did I approach this wrong and there is a more eloquent way of implementing?







laravel






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited yesterday









halfer

14.3k758109




14.3k758109










asked Dec 27 at 13:57









erezt

879




879












  • does the 'countries' table have state_id and does the 'states' table have country_id? If so I would route model bind and then return the property by creating a hasMany relationship. If you'd like more specifics let me know but the answer below is literally on the right track, just not explained properly.
    – Brad Goldsmith
    Dec 27 at 15:41










  • Hi there. Please try to avoid making gender assumptions about software engineers, as it can be unwelcoming. We tend to trim greetings and salutations anyway. Thank you.
    – halfer
    yesterday




















  • does the 'countries' table have state_id and does the 'states' table have country_id? If so I would route model bind and then return the property by creating a hasMany relationship. If you'd like more specifics let me know but the answer below is literally on the right track, just not explained properly.
    – Brad Goldsmith
    Dec 27 at 15:41










  • Hi there. Please try to avoid making gender assumptions about software engineers, as it can be unwelcoming. We tend to trim greetings and salutations anyway. Thank you.
    – halfer
    yesterday


















does the 'countries' table have state_id and does the 'states' table have country_id? If so I would route model bind and then return the property by creating a hasMany relationship. If you'd like more specifics let me know but the answer below is literally on the right track, just not explained properly.
– Brad Goldsmith
Dec 27 at 15:41




does the 'countries' table have state_id and does the 'states' table have country_id? If so I would route model bind and then return the property by creating a hasMany relationship. If you'd like more specifics let me know but the answer below is literally on the right track, just not explained properly.
– Brad Goldsmith
Dec 27 at 15:41












Hi there. Please try to avoid making gender assumptions about software engineers, as it can be unwelcoming. We tend to trim greetings and salutations anyway. Thank you.
– halfer
yesterday






Hi there. Please try to avoid making gender assumptions about software engineers, as it can be unwelcoming. We tend to trim greetings and salutations anyway. Thank you.
– halfer
yesterday














1 Answer
1






active

oldest

votes


















0














in your country model create states relation



$this->hasMany(State::class);


then you can get all countries with its states by that :



Country::with('states')->get();





share|improve this answer

















  • 1




    you gonna get downvoted really quick with that answer that doesn't address anything relevant to my question, I do appreciate your effort though, thanks Gamal.
    – erezt
    Dec 27 at 14:32










  • what is your problem with this answer? @erezt
    – Ahmed Nour Jamal El-Din
    Dec 27 at 17:20













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%2f53946261%2fhow-to-parse-an-array-within-a-query-builders-get%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














in your country model create states relation



$this->hasMany(State::class);


then you can get all countries with its states by that :



Country::with('states')->get();





share|improve this answer

















  • 1




    you gonna get downvoted really quick with that answer that doesn't address anything relevant to my question, I do appreciate your effort though, thanks Gamal.
    – erezt
    Dec 27 at 14:32










  • what is your problem with this answer? @erezt
    – Ahmed Nour Jamal El-Din
    Dec 27 at 17:20


















0














in your country model create states relation



$this->hasMany(State::class);


then you can get all countries with its states by that :



Country::with('states')->get();





share|improve this answer

















  • 1




    you gonna get downvoted really quick with that answer that doesn't address anything relevant to my question, I do appreciate your effort though, thanks Gamal.
    – erezt
    Dec 27 at 14:32










  • what is your problem with this answer? @erezt
    – Ahmed Nour Jamal El-Din
    Dec 27 at 17:20
















0












0








0






in your country model create states relation



$this->hasMany(State::class);


then you can get all countries with its states by that :



Country::with('states')->get();





share|improve this answer












in your country model create states relation



$this->hasMany(State::class);


then you can get all countries with its states by that :



Country::with('states')->get();






share|improve this answer












share|improve this answer



share|improve this answer










answered Dec 27 at 14:05









hossamGamal

1114




1114








  • 1




    you gonna get downvoted really quick with that answer that doesn't address anything relevant to my question, I do appreciate your effort though, thanks Gamal.
    – erezt
    Dec 27 at 14:32










  • what is your problem with this answer? @erezt
    – Ahmed Nour Jamal El-Din
    Dec 27 at 17:20
















  • 1




    you gonna get downvoted really quick with that answer that doesn't address anything relevant to my question, I do appreciate your effort though, thanks Gamal.
    – erezt
    Dec 27 at 14:32










  • what is your problem with this answer? @erezt
    – Ahmed Nour Jamal El-Din
    Dec 27 at 17:20










1




1




you gonna get downvoted really quick with that answer that doesn't address anything relevant to my question, I do appreciate your effort though, thanks Gamal.
– erezt
Dec 27 at 14:32




you gonna get downvoted really quick with that answer that doesn't address anything relevant to my question, I do appreciate your effort though, thanks Gamal.
– erezt
Dec 27 at 14:32












what is your problem with this answer? @erezt
– Ahmed Nour Jamal El-Din
Dec 27 at 17:20






what is your problem with this answer? @erezt
– Ahmed Nour Jamal El-Din
Dec 27 at 17:20




















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%2f53946261%2fhow-to-parse-an-array-within-a-query-builders-get%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

Monofisismo

Angular Downloading a file using contenturl with Basic Authentication

Olmecas