Я пытаюсь настроить систему электронной почты в laravel 4.2. У меня есть две модели электронной почты и пользователя со многими и многими отношениями между ними. До сих пор так хорошо, но теперь я просто застрял в проблеме, в то время как paginating отправил электронные письма. Я пробовал в течение 2 дней, но еще не выполнил задачу.Разбиение страницы с множеством отношений в laravel
//User.php Model
public function emails()
{
return $this->belongsToMany('Email', 'users_email', 'reciever_uid','email_id')->
withPivot('sender_UID');
}
//Email.php Model
public function users()
{
return $this->belongsToMany('User', 'users_email', 'email_id','reciever_id');
}
Я попытался извлечь данные users_email сводной таблицы, чтобы получить все идентификаторы электронной почты текущего с проверкой подлинности пользователя QueryBuilder.
$user=Auth::Id();
$user_data=DB::table('users_email')->
join('users','users_email.reciever_uid','=','users.Id')->
where('users_email.sender_uid','=',$user->Id)->orderby
('users_email.email_id','desc')->get();
foreach ($user_data as $data) {
$id[]=$data->email_id;
}
Теперь у меня есть $ массив ID, и я хочу получать все письма вместе с f_name и l_name приемника, который будет отображаться. До сих пор я старался загружать некоторые базовые знания, но не смог получить ожидаемый результат . Я пробовал что-то это, чтобы разбивать все электронные письма в пределах $ id, но getTotal возвращает только 2, хотя изображение, показанное ниже, указывает, что электронное письмо с id = 78 отправило 8 n, поэтому я хочу разбивать страницы по электронной почте. E.x preage только 10 писем.
$pagination=User::with(array('emails'=>function($query) use ($id){
$query->WhereIn('users_email.email_id',$id);
}))->paginate(10);
Любая помощь будет высоко оценена.
Спасибо
сводной таблицы users_email
Что вы сделали, это довольно ясно, но я не понимаю, что вы хотите делать. Получить все электронные письма, отправленные пользователем, с разбивкой на страницы? Получить всех пользователей, с разбивкой на страницы и отправлять их электронные письма с нетерпением? Получите всех пользователей, отправив их первые электронные письма? –
@Alexendre Butynski Проблема заключается в том, что числовое число getTotal возвращает 2, которое в этом случае я хочу быть 9, потому что пользователь 79 отправил 9 электронных писем. все работает отлично, за исключением номеров разбиения на страницы! – asim