আমার দুটি টেবিল আছে, 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()
চাই তবে দ্বিতীয় টেবিল থেকে নির্দিষ্ট কলাম চাই। আমি জানি আমি কোয়েরি বিল্ডারটি ব্যবহার করতে পারি তবে আমি চাই না।
আমি যখন 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