私は少し問題がありますが、それは私をたくさんイライラさせています。1対多の関係を使用するとき、コレクションの最初のアイテムを取得する方法
I持っている二つのテーブル
1.ユーザー
2.ポスト
私の質問:最初に取得する方法関係を入力するとポスト?ところで
public function index() {
$user = User::find(1);
// here it will return all posts
$user->with('posts');
return view('home.index',compact('user'));
}
:私は、クロージャを使用しますが、それはうまくいきませんでした...それはポスト
public function index()
{
$user = User::find(1);
$user = $user->with(['posts' => function ($query) {
$query->first();
}])->get();
return $user ;
return view('home.index',compact('user'));
}
を持つすべてのユーザーを返すと、結果はそのようなものです:
[
{
"id": 1,
"name": "Barney Walter",
"email": "[email protected]",
"created_at": "2016-12-22 10:48:45",
"updated_at": "2016-12-22 10:48:45",
"posts": []
},
{
"id": 2,
"name": "Dr. Makenzie Rutherford",
"email": "[email protected]",
"created_at": "2016-12-22 10:48:45",
"updated_at": "2016-12-22 10:48:45",
"posts": []
},
{
"id": 3,
"name": "Ernesto Shanahan",
"email": "[email protected]",
"created_at": "2016-12-22 10:48:45",
"updated_at": "2016-12-22 10:48:45",
"posts": []
},
{
"id": 4,
"name": "Rosalinda Cartwright",
"email": "[email protected]",
"created_at": "2016-12-22 10:48:45",
"updated_at": "2016-12-22 10:48:45",
"posts": []
},
{
"id": 5,
"name": "Kyleigh Willms",
"email": "[email protected]",
"created_at": "2016-12-22 10:48:45",
"updated_at": "2016-12-22 10:48:45",
"posts": [
{
"id": 1,
"user_id": 5,
"name": "Malcolm Simonis",
"title": "Autem quidem quia earum ipsam. A a commodi id adipisci quia minima iste numquam. Eum eius odit porro veniam. Et iure occaecati sapiente minima et beatae. Labore eius labore accusamus sapiente sed eveniet accusamus.",
"is_published": 1,
"created_at": "2016-12-22 10:54:14",
"updated_at": "2016-12-22 10:54:14"
}
]
}
]
お手数です...お願いします!
あなたの質問がはっきりしないので、私は何の答えを与えるのかは完全にはわかりません。意図した結果はどうあるべきですか? 1つ以上の投稿を持つことに基づいてユーザーをフィルタリングするか、すべてのユーザーとその最初の投稿のみを表示しますか? – Luceos
Laravel as Much、Logicをベースにしていますが、あなたの投稿結果に対してページネーションやページングクエリを試すことができます。あなたが必要とする投稿をいくつでも得ることができます。 [this](http://stackoverflow.com/questions/21255508/select-the-first-10-rows-laravel-eloquent?answertab=active#tab-top)のようなもの –
はい...表示したい彼の最初の投稿だけ? – hikefd