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
61714
61714
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
24k1790157
24k1790157
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
850515
850515
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 |
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