Bagaimana thinkphp melaksanakan fungsi mesej peribadi
Dengan pembangunan rangkaian sosial, fungsi mesej peribadi telah menjadi ciri penting rangkaian sosial moden. Dalam ThinkPHP, tidak sukar untuk melaksanakan fungsi mesej peribadi Artikel ini akan memperkenalkan cara menggunakan rangka kerja ThinkPHP untuk melaksanakan fungsi mesej peribadi.
1. Reka bentuk pangkalan data
Untuk melaksanakan fungsi mesej peribadi, anda perlu mereka bentuk pangkalan data terlebih dahulu. Kita boleh membuat dua jadual, jadual pengguna dan jadual mesej.
Jadual pengguna mengandungi id pengguna, nama pengguna, kata laluan dan maklumat lain:
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) DEFAULT NULL, `password` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Jadual mesej mengandungi id mesej peribadi, id pengirim dan penerima, kandungan mesej peribadi, Masa penghantaran dan maklumat lain:
CREATE TABLE `messages` ( `id` int(11) NOT NULL AUTO_INCREMENT, `sender_id` int(11) DEFAULT NULL, `receiver_id` int(11) DEFAULT NULL, `content` text, `created_at` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. Pengawal
Kini, kita boleh mula melaksanakan fungsi mesej peribadi. Mula-mula, buat pengawal Mesej untuk mengendalikan operasi yang berkaitan dengan mesej peribadi. Kita boleh menjana pengawal Mesej dengan arahan berikut:
php think make:controller Messages
Dalam pengawal Mesej, kita boleh mencipta dua kaedah: indeks dan hantar.
- kaedah indeks
Kaedah indeks digunakan untuk memaparkan senarai mesej peribadi pengguna Kod adalah seperti berikut:
public function index() { $user = session('user'); $messages = Message::where('sender_id','=',$user->id) ->orWhere('receiver_id','=',$user->id) ->orderBy('created_at', 'desc') ->paginate(10); return view('messages.index', ['messages' => $messages]); }
Dalam ini kaedah, kami mula-mula mendapatkan Maklumat tentang pengguna yang sedang log masuk. Kemudian, tanya semua mesej peribadi dalam jadual mesej yang pengirim atau penerimanya ialah pengguna semasa, dan paparkannya dalam susunan kronologi terbalik dan dalam halaman.
- kaedah hantar
Kaedah hantar digunakan untuk menghantar mesej peribadi Kodnya adalah seperti berikut:
public function send(Request $request) { $content = $request->input('content'); $receiverId = $request->input('receiver_id'); $message = new Message(); $message->sender_id = session('user')->id; $message->receiver_id = $receiverId; $message->content = $content; $message->created_at = Carbon::now(); $result = $message->save(); return redirect('/messages'); }
Dalam kaedah ini, kami mula-mula dapatkan input pengguna Kandungan mesej peribadi dan ID penerima. Kemudian, buat contoh Mesej baharu, tetapkan id penghantar, id penerima, kandungan dan masa penghantaran dan simpan mesej peribadi ke pangkalan data.
3. Views
Akhir sekali, kita perlu mencipta dua paparan: messages.index dan messages.send.
- messages.index view
messages.index view digunakan untuk memaparkan semua mesej peribadi pengguna semasa Kodnya adalah seperti berikut:
@foreach($messages as $message) <div class="message"> <p>发送者:{{$message->sender->username}}</p> <p>接收者:{{$message->receiver->username}}</p> <p>{{$message->content}}</p> <p>时间:{{$message->created_at}}</p> </div> @endforeach {{$messages->links()}}
Dalam paparan ini, kami menggunakan pernyataan gelung untuk merentasi semua mesej peribadi dan memaparkan maklumat seperti pengirim, penerima, kandungan dan masa. Pada akhirnya, gunakan fungsi paging $messages->links() untuk memaparkan pautan paging.
- messages.send view
messages.send view digunakan untuk memaparkan borang untuk menghantar mesej peribadi Kodnya adalah seperti berikut:
<form action="{{url('/messages/send')}}" method="post"> @csrf <div class="form-group"> <label for="receiver_id">收件人:</label> <select name="receiver_id" id="receiver_id" class="form-control"> @foreach($users as $user) <option value="{{$user->id}}">{{$user->username}}</option> @endforeach </select> </div> <div class="form-group"> <label for="content">私信内容:</label> <textarea name="content" id="content" rows="5" class="form-control"></textarea> </div> <div class="form-group"> <button type="submit" class="btn btn-primary">发送</button> </div> </form>
Dalam paparan ini, kami menggunakan kotak lungsur untuk memilih penerima dan mencipta kotak teks untuk memasukkan kandungan mesej peribadi.
4. Ringkasan
Melalui langkah di atas, kita boleh melaksanakan fungsi mesej peribadi dalam rangka kerja ThinkPHP. Semasa operasi, perhatian harus diberikan kepada isu keselamatan data, seperti sama ada pengguna log masuk, sama ada dia mempunyai hak untuk mengakses, dsb. Melalui reka bentuk yang baik dan pelaksanaan selamat, fungsi pemesejan peribadi boleh meningkatkan pengalaman pengguna rangkaian sosial dengan lebih baik.
Atas ialah kandungan terperinci Bagaimana thinkphp melaksanakan fungsi mesej peribadi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
