Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 16.05.2019 20:34:20

Тройная вложенная загрузка работает неправильно

Тройная вложенная загрузка работает неправильно
https://prnt.sc/npghly

Должно быть - через участника чата(коих берётся 5 последних) берётся чат(1 к 1), а каждый чат берёт по 5 последних сообщений

Как есть - как выше, но почему-то берётся в сумме 5 сообщений на все чаты(сейчас есть 2 чата, в первом 3 сообщения и во втором 4, в итоге подгружает у первого чата 3, а у второго ток 2)

<?php

namespace App\Http\Controllers\SocNet;

use App\Models\ChatMember;
use App\Models\Log;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;


class MessageController extends Controller {
	public function __construct() {
		$this->middleware('auth');
	}

    public function chats(Request $request) {
       $result = ChatMember::where('user_id', Auth::id())
            ->orderBy('created_at', 'asc')
            ->take(5)
            ->with('chat.last_messages.user')
            ->get();

        return \SocNet::getSocNet(['usersChats'=> $result]);
    }

	public function send(Request $request) {
        event(new \App\Events\PushMessageEvent($request->message));
	}

}
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class ChatMember extends Model
{
    protected $fillable = ['user_id','chat_id','user_author','notifications'];

    public function chat()
    {
        return $this->hasOne('App\Models\Chat','id','chat_id');
    }
}
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Chat extends Model
{
    protected $fillable = ['name'];

    public function last_messages()
    {
        return $this->hasMany('App\Models\ChatMessage')->orderBy('created_at', 'asc')->take(5);
    }

    public function unread_messages()
    {
        return $this->hasMany('App\Models\ChatMessage')->orderBy('created_at', 'asc')->where('read',0)->take(5);
    }
}

Изменено Kirir (16.05.2019 20:37:01)


Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20

Не в сети

#2 19.05.2019 23:33:07

Re: Тройная вложенная загрузка работает неправильно


Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20

Не в сети

Подвал раздела