मेरे पास दो टेबल, posts
और likes
हैं। मुझे Eloquent का उपयोग करके एक क्वेरी, बनाने की आवश्यकता है, जो कि सभी पोस्ट को एक विशिष्ट user_id
द्वारा पसंद किया गया है।क्वेरी जहां कॉलम किसी अन्य तालिका में है
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
तालिका:
+----+---------+------------+-------------+
| 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
तालिका:
+----+---------+---------+-------------+
| 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> |
+----+---------+---------+-------------+
यहाँ मेरी Post
वर्ग है:
दूसरे शब्दों में, यह कुछ इस तरह होना चाहिए
<?php
class Post extends Eloquent {
protected $table = 'posts';
public function likes()
{
return $this->hasMany('Like');
}
}
और Like
वर्ग:
<?php
class Like extends Eloquent {
protected $table = 'likes';
public function post()
{
return $this->belongsTo('Post');
}
}
मैं यह कैसे कर सकते हैं?
आप क्यों नहीं बस laravel संबंधों का उपयोग नहीं करते हैं? उपयोगकर्ता को सेट करें <-> संबंध पसंद है? – rmobis