Paradox
3 سال پیش توسط Paradox مطرح شد
0 پاسخ

نمایش و هدایت کاربران در لایو وایر

سلام وقت بخیر
من برای سیستم چت از طریق لاراول و لایووایر میخام وقتی روی نمایش کاربران کلیک شد ، لیست کاربران نمایش بده تا اینجا که اوکی هست
حالا میخام وقتی روی هر کاربر کلیک شد یه چت ایجاد بشه و کاربر به همون صفحه چت هدایت بشه
ولی الان فقط کاربران بر اساس ایدی نمایش داده میشن و مشکلی که دارم روی کاربر کلیک میکنم اتفاقی نمیفته

اولین باره با لایو وایر کار میکنم اشنایی زیادی ندارم

کدهای component

class CreateChat extends Component
{
    public $users;
    public $message = "hello";

    // protected $listeners = ['checkConversation'];

    public function checkConversation($receiverId)
    {
        // dd($receiverId);
        $checkedConversation = Conversation::where('receiver_id' , auth()->user()->id)->where('sender_id' , $receiverId)->orWhere('receiver_id' , $receiverId)->where('sender_id', auth()->user()->id)->get();

        if(count($checkedConversation) == 0)
        {
            $createdConversation = Conversation::create(['receiver_id' => $receiverId , 'sender_id', auth()->user()->id , 'last_time_message' => 0 ]);
            $createdMessage = Message::create(['conversation_id' => $createdConversation->id , 'sender_id', auth()->user()->id , 'receiver_id' => $receiverId , 'body' => $this->message ]);

            $createdConversation->last_time_message = $createdMessage->created_at;
            $createdConversation->save();

            // return redirect()->to('/chat');

            // dd('save');
        }
        elseif(count($checkedConversation) >= 1)
        {
            dd('error');
        }
    }

    public function render()
    {
        $this->users = User::where('id','!=' , auth()->user()->id)->get();
        return view('livewire.chat.create-chat');
    }
}

blade

<div>

@extends('layouts.app')

@section('content')

<section>            
            <ul class="list-group">
                @foreach ($users as $user)
                    <li wire:click="checkConversation({{ $user->id }})" class="list-group-item">
                        {{ $user->name }}
                    </li>
                @endforeach
            </ul>
</section>
@endsection
</div>