У мене дві таблиці, User
і Post
. Один User
може бути багато , posts
і один post
належить тільки один user
.
У моїй User
моделі я маю hasMany
відношення ...
public function post(){
return $this->hasmany('post');
}
І в моїй post
моделі я маю belongsTo
відношення ...
public function user(){
return $this->belongsTo('user');
}
Тепер я хочу приєднати ці дві таблиці за допомогою, Eloquent with()
але хочу конкретних стовпців з другої таблиці. Я знаю, що можу використовувати Builder Query, але цього не хочу.
Коли в Post
моделі я пишу ...
public function getAllPosts() {
return Post::with('user')->get();
}
Він виконує такі запити ...
select * from `posts`
select * from `users` where `users`.`id` in (<1>, <2>)
Але те, що я хочу, це ...
select * from `posts`
select id,username from `users` where `users`.`id` in (<1>, <2>)
Коли я використовую ...
Post::with('user')->get(array('columns'....));
Він повертає стовпчик лише з першої таблиці. Я хочу, щоб конкретні стовпці використовувались with()
з другої таблиці. Як я можу це зробити?
$query->select('id','username');
, я отримувавTrying to get property of non-object