diff --git a/docs/content/en/api/query-builder-methods.md b/docs/content/en/api/query-builder-methods.md
index 502aac94..93bc51ab 100644
--- a/docs/content/en/api/query-builder-methods.md
+++ b/docs/content/en/api/query-builder-methods.md
@@ -23,6 +23,8 @@ await Model.include('user', 'category')
await Model.include(['user', 'category'])
```
+`with` is an alias of this method.
+
## `append`
- Arguments: `(...args)`
- Returns: `self`
@@ -225,6 +227,8 @@ Execute the query as a "select" statement.
await Model.get()
```
+`all` is an alias of this method.
+
## `first`
- Returns: `Model | { data: Model }`
@@ -249,15 +253,15 @@ await Model.find(1)
Execute the query as a "select" statement.
-These `$`-prefixed convenience methods always return the requested content as [`JSON`](https://developer.mozilla.org/en-US/docs/Web/API/Body/json).
-
```js
await Model.$get()
```
-These `$`-prefixed convenience methods always return the requested content.
+These `$`-prefixed convenience methods always return the requested content.
They handle and unwrap responses within "data".
+`$all` is an alias of this method.
+
## `$first`
- Returns: `Model`
diff --git a/docs/content/en/building-the-query.md b/docs/content/en/building-the-query.md
index cea56a59..9eae5ab8 100644
--- a/docs/content/en/building-the-query.md
+++ b/docs/content/en/building-the-query.md
@@ -14,7 +14,7 @@ With our models already set up, it's time to start using them!
See the [API reference](/api/query-builder-methods#get)
Let's start initializing a model and building a simple query that gets all records from the database.
-To achieve this, we can use the `get` method.
+To achieve this, we can use the `get` method or its alias `all`.
We can get a list of posts using the **Post** model:
@@ -407,7 +407,7 @@ The first argument of `orderBy` also accepts an array of string.
See the [API reference](/api/query-builder-methods#include)
-Sometimes, we will want to eager load a relationship, and to do so, we can use the `include` method.
+Sometimes, we will want to eager load a relationship, and to do so, we can use the `include` method or its alias `with`.
The arguments are the names of the relationships we want to include. We can pass as many arguments as we want.
Let's eager load the relationships `category` and `tags` of our **Post**:
diff --git a/src/Model.js b/src/Model.js
index 12150b61..3464292d 100644
--- a/src/Model.js
+++ b/src/Model.js
@@ -213,6 +213,10 @@ export default class Model extends StaticModel {
return this
}
+ with(...args) {
+ return this.include(...args)
+ }
+
append(...args) {
this._builder.append(...args)
@@ -428,6 +432,14 @@ export default class Model extends StaticModel {
.then(response => response.data || response)
}
+ all() {
+ return this.get()
+ }
+
+ $all() {
+ return this.$get()
+ }
+
/**
* Common CRUD operations
*/
diff --git a/src/StaticModel.js b/src/StaticModel.js
index b07c7e9f..0c9cc180 100644
--- a/src/StaticModel.js
+++ b/src/StaticModel.js
@@ -18,6 +18,13 @@ export default class StaticModel {
return self
}
+ static with(...args) {
+ let self = this.instance()
+ self.with(...args)
+
+ return self
+ }
+
static append(...args) {
let self = this.instance()
self.append(...args)
@@ -111,9 +118,21 @@ export default class StaticModel {
return self.get()
}
+ static all() {
+ let self = this.instance()
+
+ return self.all()
+ }
+
static $get() {
let self = this.instance()
return self.$get()
}
+
+ static $all() {
+ let self = this.instance()
+
+ return self.$all()
+ }
}
diff --git a/tests/builder.test.js b/tests/builder.test.js
index 3676b566..c1006622 100644
--- a/tests/builder.test.js
+++ b/tests/builder.test.js
@@ -70,6 +70,16 @@ describe('Query builder', () => {
expect(post._builder.includes).toEqual(['user', 'category'])
})
+ test('with() sets properly the builder', () => {
+ let post = Post.with('user')
+
+ expect(post._builder.includes).toEqual(['user'])
+
+ post = Post.with('user', 'category')
+
+ expect(post._builder.includes).toEqual(['user', 'category'])
+ })
+
test('append() sets properly the builder', () => {
let post = Post.append('likes')
diff --git a/tests/model.test.js b/tests/model.test.js
index eae156d5..385970f3 100644
--- a/tests/model.test.js
+++ b/tests/model.test.js
@@ -265,6 +265,24 @@ describe('Model methods', () => {
})
})
+ test('all() method should be an alias of get() method', async () => {
+ axiosMock.onGet('http://localhost/posts').reply(200, postsResponse)
+
+ const postsAll = await Post.all()
+ const postsGet = await Post.get()
+
+ expect(postsAll).toStrictEqual(postsGet)
+ })
+
+ test('$all() method should be an alias of $get() method', async () => {
+ axiosMock.onGet('http://localhost/posts').reply(200, postsEmbedResponse)
+
+ const postsAll = await Post.$all()
+ const postsGet = await Post.$get()
+
+ expect(postsAll).toStrictEqual(postsGet)
+ })
+
test('save() method makes a POST request when ID of object does not exists', async () => {
let post
const _postResponse = {