Include Relationships in CRUD controller
alive2tinker opened this issue · comments
Abdulmalik Salman Fahad Alsufayran commented
Hi there,
I want to return relationship object in the CRUD controller. For Example, when I call api/coupons
to fetch all coupons in the system, I want to include the user relationship object.
I have attempted to use the builder while customizing the query, but that did NOT work. see snippet below:
/**
* Builds Eloquent query for fetching entities in index method.
*
* @param Request $request
* @param array $requestedRelations
* @return Builder
*/
protected function buildIndexFetchQuery(Request $request, array $requestedRelations): Builder
{
$query = parent::buildIndexFetchQuery($request, $requestedRelations);
$query->with('user');
return $query;
}
protected function runIndexFetchQuery(Request $request, Builder $query, int $paginationLimit): LengthAwarePaginator
{
return $query->paginate($paginationLimit);
}
This is the response always returned:
{
"data": [
{
"id": 1,
"offer": {
"ar": "et",
"en": "modi"
},
"code": "repellendus",
"details": {
"ar": "Sit quia iste illum. Et et laborum qui consequatur aut sint non. Eveniet velit iste qui aperiam.",
"en": "Reprehenderit error laborum quia numquam et iste nulla. Ut facilis eaque ipsam delectus. Totam fugiat et ipsum tenetur in."
},
"user_id": 1,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 2,
"offer": {
"ar": "aut",
"en": "aut"
},
"code": "ipsum",
"details": {
"ar": "Qui consequatur adipisci omnis laboriosam velit. Voluptatem autem nam voluptatibus facere eos quis. Quia ratione beatae et nihil ex non et corrupti.",
"en": "Reiciendis explicabo ab nihil. Consequatur autem repellendus quia corporis neque ipsam sit. Est fuga doloribus modi atque ea."
},
"user_id": 1,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 3,
"offer": {
"ar": "quod",
"en": "deserunt"
},
"code": "iure",
"details": {
"ar": "Ad animi magni est autem veritatis. Ducimus culpa dignissimos recusandae at. Molestiae fugit dolores omnis.",
"en": "Ut magni non at molestias. Quia quia a ut optio qui ut dignissimos. Ducimus et quaerat est earum dolor sed laboriosam."
},
"user_id": 1,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 4,
"offer": {
"ar": "impedit",
"en": "dolores"
},
"code": "ex",
"details": {
"ar": "Minima consequatur illo quia sint voluptate voluptatibus sequi. Accusantium consequatur officia odio aut repellendus. Autem ut nobis ut et nisi nihil qui.",
"en": "Velit eos aspernatur ullam fuga assumenda. Quaerat numquam eaque debitis repellendus sunt. Quasi nesciunt velit voluptatum ducimus dolores et."
},
"user_id": 1,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 5,
"offer": {
"ar": "illo",
"en": "consectetur"
},
"code": "tempora",
"details": {
"ar": "Est eius et libero pariatur enim excepturi quis ad. Veniam nemo et est ullam cumque laborum sunt. Exercitationem ullam est omnis sequi harum.",
"en": "Delectus molestiae voluptates ut id. Similique pariatur ea facilis perspiciatis illum ratione accusantium et. Incidunt id aut id."
},
"user_id": 1,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 6,
"offer": {
"ar": "molestias",
"en": "ut"
},
"code": "tempore",
"details": {
"ar": "Ut reprehenderit nisi ut. Molestiae soluta cupiditate sit expedita dolores. Quasi natus qui magnam cumque illum.",
"en": "Natus enim voluptas similique est sit repellat et. Dolor fugiat ut debitis dolorem non ab. Doloribus iusto eos expedita enim aut nesciunt."
},
"user_id": 1,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 7,
"offer": {
"ar": "similique",
"en": "et"
},
"code": "minima",
"details": {
"ar": "Modi tenetur ducimus est dolor totam. Dolor porro odio optio laborum dolor cum ut. Sapiente laudantium nemo maxime consequatur impedit qui.",
"en": "Et ipsam sed doloribus doloribus magni voluptatem. Ad saepe repudiandae rerum necessitatibus. Enim rerum enim sequi et deserunt perspiciatis facilis."
},
"user_id": 1,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 8,
"offer": {
"ar": "et",
"en": "exercitationem"
},
"code": "quia",
"details": {
"ar": "Autem voluptate necessitatibus dignissimos laudantium pariatur. Assumenda quasi ut sit in mollitia. Temporibus rerum hic rerum rerum illum et id.",
"en": "Similique fugit minima molestias nulla harum cumque voluptas. Consequatur omnis et nihil distinctio voluptatum rerum velit dolores. Aut eveniet qui occaecati animi sunt temporibus occaecati."
},
"user_id": 1,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 9,
"offer": {
"ar": "expedita",
"en": "et"
},
"code": "deleniti",
"details": {
"ar": "Voluptas soluta qui natus enim commodi. Molestias illo facere dolorum est voluptatem cupiditate ut accusantium. Consequatur dolor eligendi inventore quo consequuntur vitae.",
"en": "Sequi ut eius maiores. Modi alias qui quaerat quia quia laboriosam. Voluptatum sapiente a ipsa aspernatur incidunt omnis."
},
"user_id": 1,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 10,
"offer": {
"ar": "maiores",
"en": "deleniti"
},
"code": "quisquam",
"details": {
"ar": "Est hic sit rem ipsam. Sed eius earum voluptatem est provident non accusantium. Sunt rerum at dolorem et perferendis deserunt.",
"en": "Quod nulla eligendi in ratione. Veniam harum quia rerum blanditiis excepturi et cupiditate. Voluptas magni consectetur exercitationem accusantium esse dolore."
},
"user_id": 1,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 11,
"offer": {
"ar": "vel",
"en": "totam"
},
"code": "et",
"details": {
"ar": "Eligendi fugit in repellendus id beatae molestiae. Dolore repudiandae eum unde molestiae ut cupiditate sit. Veritatis maiores eligendi ducimus hic quia et.",
"en": "Eveniet possimus cum ipsam. Laudantium ullam optio quam molestiae ullam. Et doloremque repellendus eum rerum exercitationem ipsam."
},
"user_id": 2,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 12,
"offer": {
"ar": "id",
"en": "rerum"
},
"code": "et",
"details": {
"ar": "Dolores numquam totam officia omnis sit eos dignissimos cum. Ipsa quasi velit blanditiis necessitatibus sunt. Placeat ratione corporis sit vitae.",
"en": "Est ex eligendi quam minima. Labore laborum aut eaque ut facere. Sapiente illo optio ducimus labore."
},
"user_id": 2,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 13,
"offer": {
"ar": "perspiciatis",
"en": "aut"
},
"code": "rerum",
"details": {
"ar": "Ut harum at necessitatibus iure ab inventore. Nobis praesentium est voluptas nihil quo. Ex sequi similique eius in et sed qui fugit.",
"en": "Tenetur quia architecto molestiae perferendis qui fugit unde. Sit corporis rerum esse reiciendis deleniti minus deserunt sed. Aut voluptatibus architecto quas voluptatum omnis fuga voluptates."
},
"user_id": 2,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 14,
"offer": {
"ar": "eum",
"en": "laboriosam"
},
"code": "sint",
"details": {
"ar": "Corrupti possimus quisquam omnis est ut voluptatum exercitationem facere. Non commodi recusandae praesentium non impedit labore aut. Mollitia enim commodi qui voluptas sapiente.",
"en": "Quas ea a sit dolores nobis fuga. Velit eius quia voluptatem illum quam sunt necessitatibus. Cupiditate modi voluptate voluptatem et optio alias."
},
"user_id": 2,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
},
{
"id": 15,
"offer": {
"ar": "possimus",
"en": "nesciunt"
},
"code": "eum",
"details": {
"ar": "Consequatur dolor quia quia eos sunt. Quaerat laboriosam laborum dolore fugiat ducimus est sed. Sequi aut fugit reprehenderit quam aliquid et et.",
"en": "Et quia et vel omnis. Facilis alias esse quia. Sed ipsa ad libero suscipit nemo magni."
},
"user_id": 2,
"created_at": "2022-12-26T11:03:39.000000Z",
"updated_at": "2022-12-26T11:03:39.000000Z"
}
],
"links": {
"first": "https://api.couponami.test/api/coupons?page=1",
"last": "https://api.couponami.test/api/coupons?page=7",
"prev": null,
"next": "https://api.couponami.test/api/coupons?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 7,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://api.couponami.test/api/coupons?page=1",
"label": "1",
"active": true
},
{
"url": "https://api.couponami.test/api/coupons?page=2",
"label": "2",
"active": false
},
{
"url": "https://api.couponami.test/api/coupons?page=3",
"label": "3",
"active": false
},
{
"url": "https://api.couponami.test/api/coupons?page=4",
"label": "4",
"active": false
},
{
"url": "https://api.couponami.test/api/coupons?page=5",
"label": "5",
"active": false
},
{
"url": "https://api.couponami.test/api/coupons?page=6",
"label": "6",
"active": false
},
{
"url": "https://api.couponami.test/api/coupons?page=7",
"label": "7",
"active": false
},
{
"url": "https://api.couponami.test/api/coupons?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://api.couponami.test/api/coupons",
"per_page": 15,
"to": 15,
"total": 100
}
}
The current documentation requires that I have the ID of the object in order to implement the relationController
and that I would have to make two calls to backend. is there anyway around that with Orion ?
Thanks in a advance