Laravel contains relation of relation
up vote
0
down vote
favorite
I have the relations
Trainee->hasMany->Poke
Company->hasMany->Poke
Poke->belongsTo->Trainee
Poke->belongsTo->Company
Now, I want to check if a Trainee
contains a Poke
from a Company
. How can I do this the cleanest? I would prefer something like $trainee->containsPokeFrom($company);
because I am using this in my blade file, but if thats not an option, than it's ok.
php laravel relation
add a comment |
up vote
0
down vote
favorite
I have the relations
Trainee->hasMany->Poke
Company->hasMany->Poke
Poke->belongsTo->Trainee
Poke->belongsTo->Company
Now, I want to check if a Trainee
contains a Poke
from a Company
. How can I do this the cleanest? I would prefer something like $trainee->containsPokeFrom($company);
because I am using this in my blade file, but if thats not an option, than it's ok.
php laravel relation
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have the relations
Trainee->hasMany->Poke
Company->hasMany->Poke
Poke->belongsTo->Trainee
Poke->belongsTo->Company
Now, I want to check if a Trainee
contains a Poke
from a Company
. How can I do this the cleanest? I would prefer something like $trainee->containsPokeFrom($company);
because I am using this in my blade file, but if thats not an option, than it's ok.
php laravel relation
I have the relations
Trainee->hasMany->Poke
Company->hasMany->Poke
Poke->belongsTo->Trainee
Poke->belongsTo->Company
Now, I want to check if a Trainee
contains a Poke
from a Company
. How can I do this the cleanest? I would prefer something like $trainee->containsPokeFrom($company);
because I am using this in my blade file, but if thats not an option, than it's ok.
php laravel relation
php laravel relation
asked Nov 19 at 11:42
KuebelElch15
65415
65415
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
up vote
3
down vote
accepted
You would use the exists()
method on your pokes
relationship method:
class Trainee extends Model
{
public function pokes()
{
return $this->hasMany(Poke::class);
}
public function containsPokeFrom(Company $company)
{
return $this->pokes()->where(function ($poke) use ($company) {
$poke->where('company_id', $company->getKey());
})->exists();
}
}
1
Thanks, you are a genius!
– KuebelElch15
Nov 19 at 12:00
1
@KuebelElch15 Thanks. Not a genius, just someone who’s worked with Laravel a fair bit :)
– Martin Bean
Nov 19 at 12:03
@MartinBean Can you explain whywhere()
withclosure
is needed here?
– IndianCoding
Nov 19 at 12:15
1
@IndianCoding To restrict the pokes to the specified company only. Otherwise it’ll return the trainee’s pokes from every company.
– Martin Bean
Nov 19 at 13:35
add a comment |
up vote
0
down vote
You can get data with with()
method.
Example:
public function getTrainee()
{
return Trainee::with('Poke.Company')->get();
// Here you will find all trainee which associated with multiple pokes which belongs to a company
}
I want to check if a specific trainee contains a relation with a poke from a specific company. LikeTrainee A has a Poke from Company B
. Orhas Company A already made a Poke to Trainee B
?
– KuebelElch15
Nov 19 at 11:52
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
3
down vote
accepted
You would use the exists()
method on your pokes
relationship method:
class Trainee extends Model
{
public function pokes()
{
return $this->hasMany(Poke::class);
}
public function containsPokeFrom(Company $company)
{
return $this->pokes()->where(function ($poke) use ($company) {
$poke->where('company_id', $company->getKey());
})->exists();
}
}
1
Thanks, you are a genius!
– KuebelElch15
Nov 19 at 12:00
1
@KuebelElch15 Thanks. Not a genius, just someone who’s worked with Laravel a fair bit :)
– Martin Bean
Nov 19 at 12:03
@MartinBean Can you explain whywhere()
withclosure
is needed here?
– IndianCoding
Nov 19 at 12:15
1
@IndianCoding To restrict the pokes to the specified company only. Otherwise it’ll return the trainee’s pokes from every company.
– Martin Bean
Nov 19 at 13:35
add a comment |
up vote
3
down vote
accepted
You would use the exists()
method on your pokes
relationship method:
class Trainee extends Model
{
public function pokes()
{
return $this->hasMany(Poke::class);
}
public function containsPokeFrom(Company $company)
{
return $this->pokes()->where(function ($poke) use ($company) {
$poke->where('company_id', $company->getKey());
})->exists();
}
}
1
Thanks, you are a genius!
– KuebelElch15
Nov 19 at 12:00
1
@KuebelElch15 Thanks. Not a genius, just someone who’s worked with Laravel a fair bit :)
– Martin Bean
Nov 19 at 12:03
@MartinBean Can you explain whywhere()
withclosure
is needed here?
– IndianCoding
Nov 19 at 12:15
1
@IndianCoding To restrict the pokes to the specified company only. Otherwise it’ll return the trainee’s pokes from every company.
– Martin Bean
Nov 19 at 13:35
add a comment |
up vote
3
down vote
accepted
up vote
3
down vote
accepted
You would use the exists()
method on your pokes
relationship method:
class Trainee extends Model
{
public function pokes()
{
return $this->hasMany(Poke::class);
}
public function containsPokeFrom(Company $company)
{
return $this->pokes()->where(function ($poke) use ($company) {
$poke->where('company_id', $company->getKey());
})->exists();
}
}
You would use the exists()
method on your pokes
relationship method:
class Trainee extends Model
{
public function pokes()
{
return $this->hasMany(Poke::class);
}
public function containsPokeFrom(Company $company)
{
return $this->pokes()->where(function ($poke) use ($company) {
$poke->where('company_id', $company->getKey());
})->exists();
}
}
answered Nov 19 at 11:56
Martin Bean
24.1k1790158
24.1k1790158
1
Thanks, you are a genius!
– KuebelElch15
Nov 19 at 12:00
1
@KuebelElch15 Thanks. Not a genius, just someone who’s worked with Laravel a fair bit :)
– Martin Bean
Nov 19 at 12:03
@MartinBean Can you explain whywhere()
withclosure
is needed here?
– IndianCoding
Nov 19 at 12:15
1
@IndianCoding To restrict the pokes to the specified company only. Otherwise it’ll return the trainee’s pokes from every company.
– Martin Bean
Nov 19 at 13:35
add a comment |
1
Thanks, you are a genius!
– KuebelElch15
Nov 19 at 12:00
1
@KuebelElch15 Thanks. Not a genius, just someone who’s worked with Laravel a fair bit :)
– Martin Bean
Nov 19 at 12:03
@MartinBean Can you explain whywhere()
withclosure
is needed here?
– IndianCoding
Nov 19 at 12:15
1
@IndianCoding To restrict the pokes to the specified company only. Otherwise it’ll return the trainee’s pokes from every company.
– Martin Bean
Nov 19 at 13:35
1
1
Thanks, you are a genius!
– KuebelElch15
Nov 19 at 12:00
Thanks, you are a genius!
– KuebelElch15
Nov 19 at 12:00
1
1
@KuebelElch15 Thanks. Not a genius, just someone who’s worked with Laravel a fair bit :)
– Martin Bean
Nov 19 at 12:03
@KuebelElch15 Thanks. Not a genius, just someone who’s worked with Laravel a fair bit :)
– Martin Bean
Nov 19 at 12:03
@MartinBean Can you explain why
where()
with closure
is needed here?– IndianCoding
Nov 19 at 12:15
@MartinBean Can you explain why
where()
with closure
is needed here?– IndianCoding
Nov 19 at 12:15
1
1
@IndianCoding To restrict the pokes to the specified company only. Otherwise it’ll return the trainee’s pokes from every company.
– Martin Bean
Nov 19 at 13:35
@IndianCoding To restrict the pokes to the specified company only. Otherwise it’ll return the trainee’s pokes from every company.
– Martin Bean
Nov 19 at 13:35
add a comment |
up vote
0
down vote
You can get data with with()
method.
Example:
public function getTrainee()
{
return Trainee::with('Poke.Company')->get();
// Here you will find all trainee which associated with multiple pokes which belongs to a company
}
I want to check if a specific trainee contains a relation with a poke from a specific company. LikeTrainee A has a Poke from Company B
. Orhas Company A already made a Poke to Trainee B
?
– KuebelElch15
Nov 19 at 11:52
add a comment |
up vote
0
down vote
You can get data with with()
method.
Example:
public function getTrainee()
{
return Trainee::with('Poke.Company')->get();
// Here you will find all trainee which associated with multiple pokes which belongs to a company
}
I want to check if a specific trainee contains a relation with a poke from a specific company. LikeTrainee A has a Poke from Company B
. Orhas Company A already made a Poke to Trainee B
?
– KuebelElch15
Nov 19 at 11:52
add a comment |
up vote
0
down vote
up vote
0
down vote
You can get data with with()
method.
Example:
public function getTrainee()
{
return Trainee::with('Poke.Company')->get();
// Here you will find all trainee which associated with multiple pokes which belongs to a company
}
You can get data with with()
method.
Example:
public function getTrainee()
{
return Trainee::with('Poke.Company')->get();
// Here you will find all trainee which associated with multiple pokes which belongs to a company
}
answered Nov 19 at 11:49
Emtiaz Zahid
1,025516
1,025516
I want to check if a specific trainee contains a relation with a poke from a specific company. LikeTrainee A has a Poke from Company B
. Orhas Company A already made a Poke to Trainee B
?
– KuebelElch15
Nov 19 at 11:52
add a comment |
I want to check if a specific trainee contains a relation with a poke from a specific company. LikeTrainee A has a Poke from Company B
. Orhas Company A already made a Poke to Trainee B
?
– KuebelElch15
Nov 19 at 11:52
I want to check if a specific trainee contains a relation with a poke from a specific company. Like
Trainee A has a Poke from Company B
. Or has Company A already made a Poke to Trainee B
?– KuebelElch15
Nov 19 at 11:52
I want to check if a specific trainee contains a relation with a poke from a specific company. Like
Trainee A has a Poke from Company B
. Or has Company A already made a Poke to Trainee B
?– KuebelElch15
Nov 19 at 11:52
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.
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.
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%2f53373898%2flaravel-contains-relation-of-relation%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