Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Тройная вложенная загрузка работает неправильно
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
Не в сети
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети
Страницы 1