How can I get the parent model data inside of a local scope?
I have a many to many relationship between $users
and $students
. A student is considered active if a $student
has an active status and the $user
has an active status.
When I call $user->students()->active
can I get the $user
model inside of the scope without passing a parameter?. Example below:
class User extends Model {
// Normal model stuff
function students() {
return $this->belongsToMany('students', 'user_students');
}
}
class Student extends Model {
// Normal model stuff
function scopeActive($query) {
// Can I get the $user model here without a parameter?
}
}
So I want to check the users status inside of the scopeActive
function which will change the query.
php laravel eloquent
add a comment |
I have a many to many relationship between $users
and $students
. A student is considered active if a $student
has an active status and the $user
has an active status.
When I call $user->students()->active
can I get the $user
model inside of the scope without passing a parameter?. Example below:
class User extends Model {
// Normal model stuff
function students() {
return $this->belongsToMany('students', 'user_students');
}
}
class Student extends Model {
// Normal model stuff
function scopeActive($query) {
// Can I get the $user model here without a parameter?
}
}
So I want to check the users status inside of the scopeActive
function which will change the query.
php laravel eloquent
you could store a reference to User in the model?
– atoms
Jan 2 at 21:32
@atoms what would that look like?
– hdifen
Jan 2 at 21:34
add a comment |
I have a many to many relationship between $users
and $students
. A student is considered active if a $student
has an active status and the $user
has an active status.
When I call $user->students()->active
can I get the $user
model inside of the scope without passing a parameter?. Example below:
class User extends Model {
// Normal model stuff
function students() {
return $this->belongsToMany('students', 'user_students');
}
}
class Student extends Model {
// Normal model stuff
function scopeActive($query) {
// Can I get the $user model here without a parameter?
}
}
So I want to check the users status inside of the scopeActive
function which will change the query.
php laravel eloquent
I have a many to many relationship between $users
and $students
. A student is considered active if a $student
has an active status and the $user
has an active status.
When I call $user->students()->active
can I get the $user
model inside of the scope without passing a parameter?. Example below:
class User extends Model {
// Normal model stuff
function students() {
return $this->belongsToMany('students', 'user_students');
}
}
class Student extends Model {
// Normal model stuff
function scopeActive($query) {
// Can I get the $user model here without a parameter?
}
}
So I want to check the users status inside of the scopeActive
function which will change the query.
php laravel eloquent
php laravel eloquent
asked Jan 2 at 21:20
hdifenhdifen
832720
832720
you could store a reference to User in the model?
– atoms
Jan 2 at 21:32
@atoms what would that look like?
– hdifen
Jan 2 at 21:34
add a comment |
you could store a reference to User in the model?
– atoms
Jan 2 at 21:32
@atoms what would that look like?
– hdifen
Jan 2 at 21:34
you could store a reference to User in the model?
– atoms
Jan 2 at 21:32
you could store a reference to User in the model?
– atoms
Jan 2 at 21:32
@atoms what would that look like?
– hdifen
Jan 2 at 21:34
@atoms what would that look like?
– hdifen
Jan 2 at 21:34
add a comment |
1 Answer
1
active
oldest
votes
First of all the relationship sounds weird when you try to read it: A user has many students and a student has many users, but anyway.
I don't think that you can get a reference to the caller but you can pass a parameter to a custom scope, those are known as dynamic scopes
So your scope can be:
public function scopeActive($query, $user)
{
// here you have reference to the $user
}
and you can call it like this:
Student::active($user);
Yea I agree it's weird but its that way for business reasons. I said above I was after a way without passing a parameter. I was wondering if there was a way to get to the reference to the parent that eloquent uses.
– hdifen
Jan 2 at 22:18
add a comment |
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%2f54013338%2fhow-can-i-get-the-parent-model-data-inside-of-a-local-scope%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
First of all the relationship sounds weird when you try to read it: A user has many students and a student has many users, but anyway.
I don't think that you can get a reference to the caller but you can pass a parameter to a custom scope, those are known as dynamic scopes
So your scope can be:
public function scopeActive($query, $user)
{
// here you have reference to the $user
}
and you can call it like this:
Student::active($user);
Yea I agree it's weird but its that way for business reasons. I said above I was after a way without passing a parameter. I was wondering if there was a way to get to the reference to the parent that eloquent uses.
– hdifen
Jan 2 at 22:18
add a comment |
First of all the relationship sounds weird when you try to read it: A user has many students and a student has many users, but anyway.
I don't think that you can get a reference to the caller but you can pass a parameter to a custom scope, those are known as dynamic scopes
So your scope can be:
public function scopeActive($query, $user)
{
// here you have reference to the $user
}
and you can call it like this:
Student::active($user);
Yea I agree it's weird but its that way for business reasons. I said above I was after a way without passing a parameter. I was wondering if there was a way to get to the reference to the parent that eloquent uses.
– hdifen
Jan 2 at 22:18
add a comment |
First of all the relationship sounds weird when you try to read it: A user has many students and a student has many users, but anyway.
I don't think that you can get a reference to the caller but you can pass a parameter to a custom scope, those are known as dynamic scopes
So your scope can be:
public function scopeActive($query, $user)
{
// here you have reference to the $user
}
and you can call it like this:
Student::active($user);
First of all the relationship sounds weird when you try to read it: A user has many students and a student has many users, but anyway.
I don't think that you can get a reference to the caller but you can pass a parameter to a custom scope, those are known as dynamic scopes
So your scope can be:
public function scopeActive($query, $user)
{
// here you have reference to the $user
}
and you can call it like this:
Student::active($user);
answered Jan 2 at 21:45
nakovnakov
3,3462811
3,3462811
Yea I agree it's weird but its that way for business reasons. I said above I was after a way without passing a parameter. I was wondering if there was a way to get to the reference to the parent that eloquent uses.
– hdifen
Jan 2 at 22:18
add a comment |
Yea I agree it's weird but its that way for business reasons. I said above I was after a way without passing a parameter. I was wondering if there was a way to get to the reference to the parent that eloquent uses.
– hdifen
Jan 2 at 22:18
Yea I agree it's weird but its that way for business reasons. I said above I was after a way without passing a parameter. I was wondering if there was a way to get to the reference to the parent that eloquent uses.
– hdifen
Jan 2 at 22:18
Yea I agree it's weird but its that way for business reasons. I said above I was after a way without passing a parameter. I was wondering if there was a way to get to the reference to the parent that eloquent uses.
– hdifen
Jan 2 at 22:18
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%2f54013338%2fhow-can-i-get-the-parent-model-data-inside-of-a-local-scope%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
you could store a reference to User in the model?
– atoms
Jan 2 at 21:32
@atoms what would that look like?
– hdifen
Jan 2 at 21:34