İki tablonun var, posts
ve likes
. Belirli bir user_id
tarafından beğenildi tüm mesajlar alır, Eloquent kullanarak, bir sorgu oluşturmanız gerekir.Sütunun başka bir tabloda bulunduğu sorgu Sorgu
SELECT * FROM posts p LEFT JOIN likes l ON p.id = l.post_id WHERE l.user_id = 2 ORDER BY l.created_at DESC
posts
tablo:
+----+---------+------------+-------------+
| id | user_id | message | created_at |
+----+---------+------------+-------------+
| 1 | 2 | Hello! | <SOME TIME> |
| 2 | 3 | World! | <SOME TIME> |
| 3 | 2 | Something. | <SOME TIME> |
| 4 | 2 | Another. | <SOME TIME> |
+----+---------+------------+-------------+
likes
tablo:
+----+---------+---------+-------------+
| id | post_id | user_id | created_at |
+----+---------+---------+-------------+
| 1 | 1 | 2 | <SOME TIME> |
| 2 | 2 | 2 | <SOME TIME> |
| 3 | 1 | 3 | <SOME TIME> |
| 4 | 3 | 2 | <SOME TIME> |
+----+---------+---------+-------------+
benim Post
sınıftır:
, böyle bir şey olmalı
<?php
class Post extends Eloquent {
protected $table = 'posts';
public function likes()
{
return $this->hasMany('Like');
}
}
Ve Like
sınıfı:
<?php
class Like extends Eloquent {
protected $table = 'likes';
public function post()
{
return $this->belongsTo('Post');
}
}
Bunu nasıl yapabilirim?
Neden sadece laravel ilişkilerini kullanmıyorsun? Bir kullanıcı seç <-> ilişkiyi beğendiniz mi? – rmobis