37 lines
13 KiB
HTML
37 lines
13 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-US">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>Laravel Helpers | json-api-server</title>
|
|
<meta name="generator" content="VuePress 1.8.2">
|
|
|
|
<meta name="description" content="A fully automated JSON:API server implementation in PHP.">
|
|
|
|
<link rel="preload" href="/json-api-server/assets/css/0.styles.57b98ad2.css" as="style"><link rel="preload" href="/json-api-server/assets/js/app.67f738be.js" as="script"><link rel="preload" href="/json-api-server/assets/js/2.45932810.js" as="script"><link rel="preload" href="/json-api-server/assets/js/15.88e8e5d1.js" as="script"><link rel="prefetch" href="/json-api-server/assets/js/10.f39ec3a0.js"><link rel="prefetch" href="/json-api-server/assets/js/11.724dd987.js"><link rel="prefetch" href="/json-api-server/assets/js/12.9934b242.js"><link rel="prefetch" href="/json-api-server/assets/js/13.01e72a34.js"><link rel="prefetch" href="/json-api-server/assets/js/14.0a2e817f.js"><link rel="prefetch" href="/json-api-server/assets/js/16.c308b4df.js"><link rel="prefetch" href="/json-api-server/assets/js/17.8ed4f1c9.js"><link rel="prefetch" href="/json-api-server/assets/js/18.3550a25e.js"><link rel="prefetch" href="/json-api-server/assets/js/19.65cfb425.js"><link rel="prefetch" href="/json-api-server/assets/js/20.b9e8a752.js"><link rel="prefetch" href="/json-api-server/assets/js/21.80416eea.js"><link rel="prefetch" href="/json-api-server/assets/js/22.c8abdf2c.js"><link rel="prefetch" href="/json-api-server/assets/js/23.298bad12.js"><link rel="prefetch" href="/json-api-server/assets/js/24.f0bf2e90.js"><link rel="prefetch" href="/json-api-server/assets/js/25.5bf262d7.js"><link rel="prefetch" href="/json-api-server/assets/js/26.1472df94.js"><link rel="prefetch" href="/json-api-server/assets/js/3.54f7104d.js"><link rel="prefetch" href="/json-api-server/assets/js/4.a1fa2109.js"><link rel="prefetch" href="/json-api-server/assets/js/5.42433e02.js"><link rel="prefetch" href="/json-api-server/assets/js/6.60d915b0.js"><link rel="prefetch" href="/json-api-server/assets/js/7.62c9b4c8.js"><link rel="prefetch" href="/json-api-server/assets/js/8.2eaea85f.js"><link rel="prefetch" href="/json-api-server/assets/js/9.e517d767.js">
|
|
<link rel="stylesheet" href="/json-api-server/assets/css/0.styles.57b98ad2.css">
|
|
</head>
|
|
<body>
|
|
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/json-api-server/" class="home-link router-link-active"><!----> <span class="site-name">json-api-server</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/json-api-server/" class="nav-link">
|
|
Guide
|
|
</a></div> <a href="https://github.com/tobyz/json-api-server" target="_blank" rel="noopener noreferrer" class="repo-link">
|
|
GitHub
|
|
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/json-api-server/" class="nav-link">
|
|
Guide
|
|
</a></div> <a href="https://github.com/tobyz/json-api-server" target="_blank" rel="noopener noreferrer" class="repo-link">
|
|
GitHub
|
|
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Getting Started</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/json-api-server/" aria-current="page" class="sidebar-link">Introduction</a></li><li><a href="/json-api-server/install.html" class="sidebar-link">Installation</a></li><li><a href="/json-api-server/requests.html" class="sidebar-link">Handling Requests</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Defining Resources</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/json-api-server/adapters.html" class="sidebar-link">Adapters</a></li><li><a href="/json-api-server/scopes.html" class="sidebar-link">Scopes</a></li><li><a href="/json-api-server/attributes.html" class="sidebar-link">Attributes</a></li><li><a href="/json-api-server/relationships.html" class="sidebar-link">Relationships</a></li><li><a href="/json-api-server/visibility.html" class="sidebar-link">Field Visibility</a></li><li><a href="/json-api-server/writing.html" class="sidebar-link">Field Writability</a></li><li><a href="/json-api-server/filtering.html" class="sidebar-link">Filtering</a></li><li><a href="/json-api-server/sorting.html" class="sidebar-link">Sorting</a></li><li><a href="/json-api-server/pagination.html" class="sidebar-link">Pagination</a></li><li><a href="/json-api-server/meta.html" class="sidebar-link">Meta Information</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Endpoints</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/json-api-server/list.html" class="sidebar-link">Listing Resources</a></li><li><a href="/json-api-server/show.html" class="sidebar-link">Showing Resources</a></li><li><a href="/json-api-server/create.html" class="sidebar-link">Creating Resources</a></li><li><a href="/json-api-server/update.html" class="sidebar-link">Updating Resources</a></li><li><a href="/json-api-server/delete.html" class="sidebar-link">Deleting Resources</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Advanced</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/json-api-server/errors.html" class="sidebar-link">Error Handling</a></li><li><a href="/json-api-server/laravel.html" aria-current="page" class="active sidebar-link">Laravel Helpers</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/json-api-server/laravel.html#validation" class="sidebar-link">Validation</a></li><li class="sidebar-sub-header"><a href="/json-api-server/laravel.html#authentication" class="sidebar-link">Authentication</a></li></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="laravel-helpers"><a href="#laravel-helpers" class="header-anchor">#</a> Laravel Helpers</h1> <h2 id="validation"><a href="#validation" class="header-anchor">#</a> Validation</h2> <h3 id="rules"><a href="#rules" class="header-anchor">#</a> <code>rules</code></h3> <p>Use Laravel's <a href="https://laravel.com/docs/8.x/validation" target="_blank" rel="noopener noreferrer">Validation component<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> as a <a href="/json-api-server/writing.html#validation">field validator</a>.</p> <div class="language-php extra-class"><pre class="language-php"><code><span class="token keyword">use</span> <span class="token package">Tobyz<span class="token punctuation">\</span>JsonApiServer<span class="token punctuation">\</span>Laravel</span><span class="token punctuation">;</span>
|
|
|
|
<span class="token variable">$type</span><span class="token operator">-></span><span class="token function">attribute</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">)</span>
|
|
<span class="token operator">-></span><span class="token function">validate</span><span class="token punctuation">(</span>Laravel\<span class="token function">rules</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'required|min:3|max:20'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><p>Pass a string or array of validation rules to be applied to the value. You can also pass an array of custom messages and custom attribute names as the second and third arguments.</p> <h2 id="authentication"><a href="#authentication" class="header-anchor">#</a> Authentication</h2> <h3 id="authenticated"><a href="#authenticated" class="header-anchor">#</a> <code>authenticated</code></h3> <p>A shortcut to call <code>Auth::check()</code>.</p> <div class="language-php extra-class"><pre class="language-php"><code><span class="token variable">$type</span><span class="token operator">-></span><span class="token function">creatable</span><span class="token punctuation">(</span>Laravel\<span class="token function">authenticated</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><h3 id="can"><a href="#can" class="header-anchor">#</a> <code>can</code></h3> <p>Use Laravel's <a href="https://laravel.com/docs/8.x/authorization" target="_blank" rel="noopener noreferrer">Gate component<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> to check if the given ability is allowed. If this is used in the context of a model (eg. <code>updatable</code>, <code>deletable</code>, or on a field), then the model will be passed to the gate check as well.</p> <div class="language-php extra-class"><pre class="language-php"><code><span class="token variable">$type</span><span class="token operator">-></span><span class="token function">updatable</span><span class="token punctuation">(</span>Laravel\<span class="token function">can</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'update-post'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/tobyz/json-api-server/edit/master/docs/laravel.md" target="_blank" rel="noopener noreferrer">Edit this page</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
|
|
←
|
|
<a href="/json-api-server/errors.html" class="prev">
|
|
Error Handling
|
|
</a></span> <!----></p></div> </main></div><div class="global-ui"></div></div>
|
|
<script src="/json-api-server/assets/js/app.67f738be.js" defer></script><script src="/json-api-server/assets/js/2.45932810.js" defer></script><script src="/json-api-server/assets/js/15.88e8e5d1.js" defer></script>
|
|
</body>
|
|
</html>
|