Laravel how to define 3 relationships with one model?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I have a Model which is called Championship. Championship may have 3 judges which are called Main Judge, Main Secretary and Judge Operator.
All of them linked to User Model and stored in the database as user ID.
My relationships looks like this
class Championship extends Model
protected $table = 'championships';
public function mainJudge()
return $this->hasOne('AppUser', 'id', 'main_judge');
public function mainSecretary()
return $this->hasOne('AppUser', 'id', 'main_secretary');
public function judgeOperator()
return $this->hasOne('AppUser', 'id','judge_operator');
But I can't undertand how to define inverse relationship in User model
class User extends Authenticatable
{
public function sex()
return $this->belongsTo('AppModelsSex');
public function player()
return $this->hasOne('AppModelsPlayer', 'user_id');
public function championship()
????
laravel-5 eloquent
add a comment |
I have a Model which is called Championship. Championship may have 3 judges which are called Main Judge, Main Secretary and Judge Operator.
All of them linked to User Model and stored in the database as user ID.
My relationships looks like this
class Championship extends Model
protected $table = 'championships';
public function mainJudge()
return $this->hasOne('AppUser', 'id', 'main_judge');
public function mainSecretary()
return $this->hasOne('AppUser', 'id', 'main_secretary');
public function judgeOperator()
return $this->hasOne('AppUser', 'id','judge_operator');
But I can't undertand how to define inverse relationship in User model
class User extends Authenticatable
{
public function sex()
return $this->belongsTo('AppModelsSex');
public function player()
return $this->hasOne('AppModelsPlayer', 'user_id');
public function championship()
????
laravel-5 eloquent
add a comment |
I have a Model which is called Championship. Championship may have 3 judges which are called Main Judge, Main Secretary and Judge Operator.
All of them linked to User Model and stored in the database as user ID.
My relationships looks like this
class Championship extends Model
protected $table = 'championships';
public function mainJudge()
return $this->hasOne('AppUser', 'id', 'main_judge');
public function mainSecretary()
return $this->hasOne('AppUser', 'id', 'main_secretary');
public function judgeOperator()
return $this->hasOne('AppUser', 'id','judge_operator');
But I can't undertand how to define inverse relationship in User model
class User extends Authenticatable
{
public function sex()
return $this->belongsTo('AppModelsSex');
public function player()
return $this->hasOne('AppModelsPlayer', 'user_id');
public function championship()
????
laravel-5 eloquent
I have a Model which is called Championship. Championship may have 3 judges which are called Main Judge, Main Secretary and Judge Operator.
All of them linked to User Model and stored in the database as user ID.
My relationships looks like this
class Championship extends Model
protected $table = 'championships';
public function mainJudge()
return $this->hasOne('AppUser', 'id', 'main_judge');
public function mainSecretary()
return $this->hasOne('AppUser', 'id', 'main_secretary');
public function judgeOperator()
return $this->hasOne('AppUser', 'id','judge_operator');
But I can't undertand how to define inverse relationship in User model
class User extends Authenticatable
{
public function sex()
return $this->belongsTo('AppModelsSex');
public function player()
return $this->hasOne('AppModelsPlayer', 'user_id');
public function championship()
????
laravel-5 eloquent
laravel-5 eloquent
asked Nov 14 '18 at 9:03
ViktorViktor
1851519
1851519
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You just have to add it like you are adding other relations :
public function championship()
return $this->belongsTo('AppChampionship');
When you do :
$championship = Championship::find($id);
$mainJudge = $championship->mainJudge;
$mainSecretary = $championship->mainSecretary;
// All objects will be exactly same
dd($mainJudge->championship,$mainSecretary->championship,$championship);
I assume all the user records have a foreign key to championships
table championship_id
When you call the $user->championship
relation it will return you the championship
wrt to its foreign key championship_id
No need to worry you are just confusing the inverse relations:
See it this way:
Your mainJudge
, mainSecretary
, judgeOperators
are of type AppUser
and every user have a championship_id
when you will call the (AppUser)->championship
it will always return you its respective championship or null
if the championship_id
is empty.
Its just matter of perspective.
Just try the above code it will clear out your confusion.
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53296399%2flaravel-how-to-define-3-relationships-with-one-model%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
You just have to add it like you are adding other relations :
public function championship()
return $this->belongsTo('AppChampionship');
When you do :
$championship = Championship::find($id);
$mainJudge = $championship->mainJudge;
$mainSecretary = $championship->mainSecretary;
// All objects will be exactly same
dd($mainJudge->championship,$mainSecretary->championship,$championship);
I assume all the user records have a foreign key to championships
table championship_id
When you call the $user->championship
relation it will return you the championship
wrt to its foreign key championship_id
No need to worry you are just confusing the inverse relations:
See it this way:
Your mainJudge
, mainSecretary
, judgeOperators
are of type AppUser
and every user have a championship_id
when you will call the (AppUser)->championship
it will always return you its respective championship or null
if the championship_id
is empty.
Its just matter of perspective.
Just try the above code it will clear out your confusion.
add a comment |
You just have to add it like you are adding other relations :
public function championship()
return $this->belongsTo('AppChampionship');
When you do :
$championship = Championship::find($id);
$mainJudge = $championship->mainJudge;
$mainSecretary = $championship->mainSecretary;
// All objects will be exactly same
dd($mainJudge->championship,$mainSecretary->championship,$championship);
I assume all the user records have a foreign key to championships
table championship_id
When you call the $user->championship
relation it will return you the championship
wrt to its foreign key championship_id
No need to worry you are just confusing the inverse relations:
See it this way:
Your mainJudge
, mainSecretary
, judgeOperators
are of type AppUser
and every user have a championship_id
when you will call the (AppUser)->championship
it will always return you its respective championship or null
if the championship_id
is empty.
Its just matter of perspective.
Just try the above code it will clear out your confusion.
add a comment |
You just have to add it like you are adding other relations :
public function championship()
return $this->belongsTo('AppChampionship');
When you do :
$championship = Championship::find($id);
$mainJudge = $championship->mainJudge;
$mainSecretary = $championship->mainSecretary;
// All objects will be exactly same
dd($mainJudge->championship,$mainSecretary->championship,$championship);
I assume all the user records have a foreign key to championships
table championship_id
When you call the $user->championship
relation it will return you the championship
wrt to its foreign key championship_id
No need to worry you are just confusing the inverse relations:
See it this way:
Your mainJudge
, mainSecretary
, judgeOperators
are of type AppUser
and every user have a championship_id
when you will call the (AppUser)->championship
it will always return you its respective championship or null
if the championship_id
is empty.
Its just matter of perspective.
Just try the above code it will clear out your confusion.
You just have to add it like you are adding other relations :
public function championship()
return $this->belongsTo('AppChampionship');
When you do :
$championship = Championship::find($id);
$mainJudge = $championship->mainJudge;
$mainSecretary = $championship->mainSecretary;
// All objects will be exactly same
dd($mainJudge->championship,$mainSecretary->championship,$championship);
I assume all the user records have a foreign key to championships
table championship_id
When you call the $user->championship
relation it will return you the championship
wrt to its foreign key championship_id
No need to worry you are just confusing the inverse relations:
See it this way:
Your mainJudge
, mainSecretary
, judgeOperators
are of type AppUser
and every user have a championship_id
when you will call the (AppUser)->championship
it will always return you its respective championship or null
if the championship_id
is empty.
Its just matter of perspective.
Just try the above code it will clear out your confusion.
answered Nov 14 '18 at 9:42
Omar AbdullahOmar Abdullah
1947
1947
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53296399%2flaravel-how-to-define-3-relationships-with-one-model%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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