Laravel, related model reuturened names












0















I have a model that has a related model



class A extends Model{

public function niceName()
{
return this->hasOne('AppNiceName2' ...);
}


In the controller when I retrieve data with submodel the result is like



a[nice_name_2] (using the table name) and I would like it to be a[NiceName2].



Is there a way to have an alias for the returned result? In cakePHP i know there is propertyName to set this on relations. Laravel has a similar feature?



Thanks










share|improve this question

























  • Not sure what you're saying. If you get A like $a = A::with(["niceName"])->first();, then you should be accessing sub-model like $niceName = $a->niceName;. Include all code necessary to recreate.

    – Tim Lewis
    Nov 15 '18 at 18:32











  • i convert it toArray (not accessing it as objects) and then the array name is table_full_name instead of ModelName.

    – Vlad Agri
    Nov 15 '18 at 18:40













  • Ah, you didn't mention that in your question, but yes, as Devon has said, serializing (converting to array/json/etc) will convert to snake_case.

    – Tim Lewis
    Nov 15 '18 at 18:48
















0















I have a model that has a related model



class A extends Model{

public function niceName()
{
return this->hasOne('AppNiceName2' ...);
}


In the controller when I retrieve data with submodel the result is like



a[nice_name_2] (using the table name) and I would like it to be a[NiceName2].



Is there a way to have an alias for the returned result? In cakePHP i know there is propertyName to set this on relations. Laravel has a similar feature?



Thanks










share|improve this question

























  • Not sure what you're saying. If you get A like $a = A::with(["niceName"])->first();, then you should be accessing sub-model like $niceName = $a->niceName;. Include all code necessary to recreate.

    – Tim Lewis
    Nov 15 '18 at 18:32











  • i convert it toArray (not accessing it as objects) and then the array name is table_full_name instead of ModelName.

    – Vlad Agri
    Nov 15 '18 at 18:40













  • Ah, you didn't mention that in your question, but yes, as Devon has said, serializing (converting to array/json/etc) will convert to snake_case.

    – Tim Lewis
    Nov 15 '18 at 18:48














0












0








0


0






I have a model that has a related model



class A extends Model{

public function niceName()
{
return this->hasOne('AppNiceName2' ...);
}


In the controller when I retrieve data with submodel the result is like



a[nice_name_2] (using the table name) and I would like it to be a[NiceName2].



Is there a way to have an alias for the returned result? In cakePHP i know there is propertyName to set this on relations. Laravel has a similar feature?



Thanks










share|improve this question
















I have a model that has a related model



class A extends Model{

public function niceName()
{
return this->hasOne('AppNiceName2' ...);
}


In the controller when I retrieve data with submodel the result is like



a[nice_name_2] (using the table name) and I would like it to be a[NiceName2].



Is there a way to have an alias for the returned result? In cakePHP i know there is propertyName to set this on relations. Laravel has a similar feature?



Thanks







laravel model alias relation






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 15 '18 at 18:16







Vlad Agri

















asked Nov 15 '18 at 18:01









Vlad AgriVlad Agri

1715




1715













  • Not sure what you're saying. If you get A like $a = A::with(["niceName"])->first();, then you should be accessing sub-model like $niceName = $a->niceName;. Include all code necessary to recreate.

    – Tim Lewis
    Nov 15 '18 at 18:32











  • i convert it toArray (not accessing it as objects) and then the array name is table_full_name instead of ModelName.

    – Vlad Agri
    Nov 15 '18 at 18:40













  • Ah, you didn't mention that in your question, but yes, as Devon has said, serializing (converting to array/json/etc) will convert to snake_case.

    – Tim Lewis
    Nov 15 '18 at 18:48



















  • Not sure what you're saying. If you get A like $a = A::with(["niceName"])->first();, then you should be accessing sub-model like $niceName = $a->niceName;. Include all code necessary to recreate.

    – Tim Lewis
    Nov 15 '18 at 18:32











  • i convert it toArray (not accessing it as objects) and then the array name is table_full_name instead of ModelName.

    – Vlad Agri
    Nov 15 '18 at 18:40













  • Ah, you didn't mention that in your question, but yes, as Devon has said, serializing (converting to array/json/etc) will convert to snake_case.

    – Tim Lewis
    Nov 15 '18 at 18:48

















Not sure what you're saying. If you get A like $a = A::with(["niceName"])->first();, then you should be accessing sub-model like $niceName = $a->niceName;. Include all code necessary to recreate.

– Tim Lewis
Nov 15 '18 at 18:32





Not sure what you're saying. If you get A like $a = A::with(["niceName"])->first();, then you should be accessing sub-model like $niceName = $a->niceName;. Include all code necessary to recreate.

– Tim Lewis
Nov 15 '18 at 18:32













i convert it toArray (not accessing it as objects) and then the array name is table_full_name instead of ModelName.

– Vlad Agri
Nov 15 '18 at 18:40







i convert it toArray (not accessing it as objects) and then the array name is table_full_name instead of ModelName.

– Vlad Agri
Nov 15 '18 at 18:40















Ah, you didn't mention that in your question, but yes, as Devon has said, serializing (converting to array/json/etc) will convert to snake_case.

– Tim Lewis
Nov 15 '18 at 18:48





Ah, you didn't mention that in your question, but yes, as Devon has said, serializing (converting to array/json/etc) will convert to snake_case.

– Tim Lewis
Nov 15 '18 at 18:48












1 Answer
1






active

oldest

votes


















1














Laravel uses the convention of camelCase for method names and snake_case for attributes. I'm not sure there's an easy way around this.



When Laravel serializes the data, it converts relationships to snake_case, by convention. So NiceName2 would become nice_name2 when you execute toArray() or when the model is serialized (either in a JSON response or otherwise).



How this works is:



When you access $model->nice_name2 it converts the property name back to niceName2 to check for a relationship method with that name. When serializing, it converts the relationship niceName2 to the attribute name nice_name2.






share|improve this answer


























  • now it's clear to me why this is happening. Thanks for the answer

    – Vlad Agri
    Nov 15 '18 at 18:47











  • I updated the answer to hopefully make it a bit more clear.

    – Devon
    Nov 15 '18 at 18:48











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%2f53325411%2flaravel-related-model-reuturened-names%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









1














Laravel uses the convention of camelCase for method names and snake_case for attributes. I'm not sure there's an easy way around this.



When Laravel serializes the data, it converts relationships to snake_case, by convention. So NiceName2 would become nice_name2 when you execute toArray() or when the model is serialized (either in a JSON response or otherwise).



How this works is:



When you access $model->nice_name2 it converts the property name back to niceName2 to check for a relationship method with that name. When serializing, it converts the relationship niceName2 to the attribute name nice_name2.






share|improve this answer


























  • now it's clear to me why this is happening. Thanks for the answer

    – Vlad Agri
    Nov 15 '18 at 18:47











  • I updated the answer to hopefully make it a bit more clear.

    – Devon
    Nov 15 '18 at 18:48
















1














Laravel uses the convention of camelCase for method names and snake_case for attributes. I'm not sure there's an easy way around this.



When Laravel serializes the data, it converts relationships to snake_case, by convention. So NiceName2 would become nice_name2 when you execute toArray() or when the model is serialized (either in a JSON response or otherwise).



How this works is:



When you access $model->nice_name2 it converts the property name back to niceName2 to check for a relationship method with that name. When serializing, it converts the relationship niceName2 to the attribute name nice_name2.






share|improve this answer


























  • now it's clear to me why this is happening. Thanks for the answer

    – Vlad Agri
    Nov 15 '18 at 18:47











  • I updated the answer to hopefully make it a bit more clear.

    – Devon
    Nov 15 '18 at 18:48














1












1








1







Laravel uses the convention of camelCase for method names and snake_case for attributes. I'm not sure there's an easy way around this.



When Laravel serializes the data, it converts relationships to snake_case, by convention. So NiceName2 would become nice_name2 when you execute toArray() or when the model is serialized (either in a JSON response or otherwise).



How this works is:



When you access $model->nice_name2 it converts the property name back to niceName2 to check for a relationship method with that name. When serializing, it converts the relationship niceName2 to the attribute name nice_name2.






share|improve this answer















Laravel uses the convention of camelCase for method names and snake_case for attributes. I'm not sure there's an easy way around this.



When Laravel serializes the data, it converts relationships to snake_case, by convention. So NiceName2 would become nice_name2 when you execute toArray() or when the model is serialized (either in a JSON response or otherwise).



How this works is:



When you access $model->nice_name2 it converts the property name back to niceName2 to check for a relationship method with that name. When serializing, it converts the relationship niceName2 to the attribute name nice_name2.







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 15 '18 at 18:48

























answered Nov 15 '18 at 18:38









DevonDevon

23.4k42747




23.4k42747













  • now it's clear to me why this is happening. Thanks for the answer

    – Vlad Agri
    Nov 15 '18 at 18:47











  • I updated the answer to hopefully make it a bit more clear.

    – Devon
    Nov 15 '18 at 18:48



















  • now it's clear to me why this is happening. Thanks for the answer

    – Vlad Agri
    Nov 15 '18 at 18:47











  • I updated the answer to hopefully make it a bit more clear.

    – Devon
    Nov 15 '18 at 18:48

















now it's clear to me why this is happening. Thanks for the answer

– Vlad Agri
Nov 15 '18 at 18:47





now it's clear to me why this is happening. Thanks for the answer

– Vlad Agri
Nov 15 '18 at 18:47













I updated the answer to hopefully make it a bit more clear.

– Devon
Nov 15 '18 at 18:48





I updated the answer to hopefully make it a bit more clear.

– Devon
Nov 15 '18 at 18:48




















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%2f53325411%2flaravel-related-model-reuturened-names%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

Florida Star v. B. J. F.

Danny Elfman

Lugert, Oklahoma