Tôi có hai bảng, User
và Post
. Một người User
có thể có nhiều posts
và một chỉ post
thuộc về một user
.
Trong User
mô hình của tôi, tôi có một hasMany
mối quan hệ ...
public function post(){
return $this->hasmany('post');
}
Và trong post
mô hình của tôi, tôi có một belongsTo
mối quan hệ ...
public function user(){
return $this->belongsTo('user');
}
Bây giờ tôi muốn tham gia hai bảng này bằng cách sử dụng Eloquent with()
nhưng muốn các cột cụ thể từ bảng thứ hai. Tôi biết tôi có thể sử dụng Trình tạo truy vấn nhưng tôi không muốn.
Khi trong Post
mô hình tôi viết ...
public function getAllPosts() {
return Post::with('user')->get();
}
Nó chạy các truy vấn sau ...
select * from `posts`
select * from `users` where `users`.`id` in (<1>, <2>)
Nhưng điều tôi muốn là ...
select * from `posts`
select id,username from `users` where `users`.`id` in (<1>, <2>)
Khi tôi sử dụng ...
Post::with('user')->get(array('columns'....));
Nó chỉ trả về cột từ bảng đầu tiên. Tôi muốn các cột cụ thể sử dụng with()
từ bảng thứ hai. Làm thế nào tôi có thể làm điều đó?
$query->select('id','username');
, tôi đã nhận đượcTrying to get property of non-object