![](/img/trans.png)
[英]Laravel get All with Relationships and Paginate relationship data
[英]Laravel get all with relationships
我幾天前開始使用laravel。 我在其他框架上有很多經驗,但是我對雄辯的ORM及其關系感到困惑。
假設用戶有另一個保存其統計信息的表。 我建立了這種關系。 現在用戶也有很多帖子,所以我也宣布了這一點。
class User extends Authenticatable
{
public function userDynamic()
{
return $this->hasOne('App\UserDynamic', 'user_id', 'id');
}
public function posts()
{
return $this->hasMany('App\Post');
}
}
在其他模型上,我們有:
class UserDynamic extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
}
和:
class Post extends Model
{
public function user()
{
$this->belongsTo('App\User','user_id','id');
}
}
我想我到目前為止是對的。 嘗試檢索這些時出現問題。 對於一個用戶,我很好,因為我不能
$user ( get user from auth token)
$user->stats = $user->userDynamic()->first();
$user->posts = $user->posts()->paginate($this->profilePagination);
很好,我為用戶提供了包含所有信息和屬性帖子中的帖子的屬性統計信息。
如果我想讓所有用戶都像下面這樣
$users = User::with('userDynamic')->active()->notPrivate();
return $users->paginate($this->followersPagination);
像這樣返回所有用戶
{
"id": 26,
"name": "LL",
"url": "",
"personal_quote": "",
"private": "0",
"active": "1",
"user_dynamic": {
"user_id": 26,
"following_count": 7,
"followers_count": 0,
"posts_count": 0,
"likes_count": 0
}
如何更改為其分配的屬性名稱? 而不是像user_dynamic這樣說統計數據。
如果您打算保留userDynamic
關系的名稱,則可以userDynamic
關系添加一個別名:
public function stats()
{
return $this->userDynamic();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.