Я искал онлайн и, похоже, не понял этого. У меня есть две таблицы: Команды и таблицы TeamMembers. Команда может иметь одного или нескольких членов команды, поэтому это отношения «один ко многим».Яркая фильтровальная коллекция с нетерпением Загрузка
Вот основные из двух таблиц:
class Team extends Base\EloquentBase
{
// Relationship
public function teamMembers()
{
return $this->hasMany('TeamClock\Eloquent\Models\TeamMember', 'team_id', 'team_id');
}
}
class TeamMember extends Base\EloquentBase
{
// Relationship
public function team()
{
return $this->belongsTo('TeamClock\Eloquent\Models\Team', 'team_id', 'team_id');
// Scope
public function scopeHasDailyPerDiem($q)
{
return $q->where('is_daily_per_diem', '>', 0);
}
}
Как вы можете видеть, у меня есть область в классе командного игрока, и я хочу, чтобы все команды с членами команды, которые имеют столбец «is_daily_per_diem» больше 0.
у меня есть контроллер тестов, и я демпинг из результатов:
$teams = Team::has('teamMembers')->with(array('teamMembers' => function($query){
$query->hasDailyPerDiem();
}))->get();
Вот что я получаю, когда выгрузка:
[0] => Array
(
[team_id] => 55
[phase_id] => value
[team_name] => value
[team_member_quota] => value
[team_member_overstaff] => value
[published] => value
[tools_required] => value
[dress_code] => value
[special_instructions] => value
[team_members] => Array
(
)
)
...
[41] => Array
(
[team_id] => 115
[phase_id] => value
[team_name] => value
[team_member_quota] => value
[team_member_overstaff] => 0
[published] => 1
[tools_required] =>
[dress_code] =>
[special_instructions] =>
[team_members] => Array
(
[0] => Array
(
[team_member_id] => value
[team_id] => 115
[position_id] => value
[employee_id] => value
[team_auth_id] => 1
[progress_auth_id] => 2
[is_daily_per_diem] => 1
[daily_per_diem] => 60.00
[pay_type_id] => 1
[flat_rate] =>
[is_active] => 0
[per_diem_beg_date] =>
[per_diem_end_date] =>
[beg_shift_id] =>
[end_shift_id] =>
[assign_email_guid] => value
)
)
)
Как вы можете видеть, я получаю смесь команд с членами команды (это ежедневно в день) 0 и команды с пустыми членами команды.
Есть ли способ устранить команды с пустыми членами команды?
Я также попытался это и другие вещи в моем тестовом контроллере:
$teams = Team::whereHas('teamMembers', function($query){
$query->hasDailyPerDiem();
})->get();
, но это возвращает массив всех членов команды с «находится в ежедневной командировочные» больше нуля, но я не получаю любая информация о команде:
[0] => Array
(
[team_id] => 55
[phase_id] => value
[team_name] => value
[team_member_quota] => value
[team_member_overstaff] => value
[published] => value
[tools_required] => value
[dress_code] => value
[special_instructions] => value
)
...
[36] => Array
(
[team_id] => 115
[phase_id] => value
[team_name] => value
[team_member_quota] => value
[team_member_overstaff] => value
[published] => value
[tools_required] => value
[dress_code] => value
[special_instructions] => value
)
Любая помощь очень ценится !!!
спасибо !!!! Первый вариант не сработал, потому что я получаю все команды с членами команды с или без суточных, но второй - тот, который мне нужен !!! – FNMT8L9IN82
Добро пожаловать. Но я уверен, что первый из вас даст вам правильные * команды *, но со всеми их членами, независимо от суточных. В любом случае, рад, что я мог бы помочь! – lukasgeiter
Хорошо ... Я рассмотрю его более подробно. Тем временем, я получил свое признание! – FNMT8L9IN82