我搜索了很多,但找不到任何答案,所以我希望你能幫助我!Laravel - 雄辯:從用戶帖子中獲取帖子
我有三個表格:帖子,用戶和post_users。 Post_users包含兩列:user_id和post_id。
我需要用戶通過Eloquent獲取所有帖子。 任何想法?
非常感謝!
(我很抱歉,如果已經存在這個問題,但我沒有找到它)
我搜索了很多,但找不到任何答案,所以我希望你能幫助我!Laravel - 雄辯:從用戶帖子中獲取帖子
我有三個表格:帖子,用戶和post_users。 Post_users包含兩列:user_id和post_id。
我需要用戶通過Eloquent獲取所有帖子。 任何想法?
非常感謝!
(我很抱歉,如果已經存在這個問題,但我沒有找到它)
型號User
:
public function posts()
{
return $this->belongsToMany('App\Post', 'post_users', 'user_id', 'post_id');
}
Post
型號:
public function users()
{
return $this->belongsToMany('App\User', 'post_users', 'post_id', 'user_id');
}
嘗試:
$user = User::find($id);
$allpost = $user->posts()->get();
var_dump($allpost);
它的工作原理!謝謝! –
不客氣。這是多對多的關係,但在你的問題中,你應該使用一對多的關係。 – mydo47
如果您有DONOT建立關係,試試這個。但建立關係是首選。郵政用戶和郵政假設爲發佈後用戶和發佈表的模型,並作爲發佈表的列發佈。這給出登錄用戶的帖子,但未經測試。
$postusers=PostUsers::where(['user_id'=>Auth::user()->id])->get();
foreach($postusers as $postuser)
{
$posts=Posts::where(['post_id'=>$postuser->post_id)]->get();
foreach($posts as $post)
{
print_r($post->post);
}
}
謝謝,但我正在尋找關係方式 –
Laravel的文檔涵蓋了這個相當不錯,但我第一次啓動時遇到了問題。檢查出Laravel Relationships完全寫出來。
// Inside your Post model
public function user() {
return $this->belongsTo('App\User');
}
// Inside your User model
public function posts() {
return $this->hasMany('App\Posts');
}
然後,您可以創建一個查詢:
$posts = User::find(1)->posts;
或者你可以過濾它進一步..
$posts = User::find(1)->posts()->where('active', 1)->get();
您可能需要更改hasMany()
和belongsTo()
如果你的路你模型位置和名稱是不同的。
如你所願。用戶與郵政的關係是多到許多
- 定義關係
// In User model
public function posts(){
return $this->belongsToMany(Post::class);
}
// In Post model
public function users(){
return $this->belongsToMany(User::class);
}
- 表結構
- users
id
- posts
id
- post_user
user_id
post_id
- 用戶獲取所有職位
$posts = User::find($user_id)->posts
我創建了post_users,因爲許多用戶可以編輯帖子。所以,用戶可以有很多帖子,帖子可以有很多用戶 –
編輯。照顧名字約定 – KmasterYC
嘗試此
從控制器:
dd(Auth::user()->posts);
應用/用戶
public function posts()
{
return $this->belongsToMany('App\Entities\posts', 'post_users', 'user_id', 'post_id');
}
你已經建立的關係? –
設置關係像'belongsTo'和'hasMany',你會發現它很微妙 – Loek
不,我沒有。我應該設置哪些關係和哪個模型?謝謝! –