dcat-admin

dcat-admin


表格规格筛选器

<h1>表格规格筛选器</h1> <p>这个功能用来构建类似淘宝或京东商品的规格选择。</p> <p>&lt;a href=&quot;{{public}}/assets/img/screenshots/grid-selector.png&quot; target=&quot;_blank&quot;&gt; &lt;img src=&quot;{{public}}/assets/img/screenshots/grid-selector.png&quot; style=&quot;box-shadow:0 1px 6px 1px rgba(0, 0, 0, 0.12)&quot; width=&quot;100%&quot; &gt; &lt;/a&gt;</p> <h3>基本使用</h3> <p>&gt; {tip} <code>select</code>和<code>selectOne</code>方法的第二个参数为选择器<code>label</code>, 可以省略,如果省略的话将会自动使用翻译文件的翻译.</p> <p>如下代码所示,假设<code>brand</code>字段的4个取值分别对应4个品牌,下面的方式会构建出<code>brand</code>的规格选择器</p> <pre><code class="language-php">use Dcat\Admin\Grid; $grid-&amp;gt;selector(function (Grid\Tools\Selector $selector) { $selector-&amp;gt;select('brand', '品牌', [ 1 =&amp;gt; '华为', 2 =&amp;gt; '小米', 3 =&amp;gt; 'OPPO', 4 =&amp;gt; 'vivo', ]); });</code></pre> <p><code>select</code>方法默认是多选的,在页面上点击每一个选项的右边的加号,这个字段的查询会增加一个查询选项,如果字段筛选只允许选择一项,使用<code>selectOne</code>方法</p> <pre><code class="language-php">$selector-&amp;gt;selectOne('brand', '品牌', [ 1 =&amp;gt; '华为', 2 =&amp;gt; '小米', 3 =&amp;gt; 'OPPO', 4 =&amp;gt; 'vivo', ]);</code></pre> <h3>关联关系字段查询</h3> <p>如果安装了 <a href="https://github.com/jqhph/laravel-wherehasin">dcat/laravel-wherehasin</a>,则会优先使用<code>whereHasIn</code>方法进行查询操作</p> <pre><code class="language-php">use Dcat\Admin\Grid; $grid-&amp;gt;selector(function (Grid\Tools\Selector $selector) { $selector-&amp;gt;select('brand.id', '品牌', [ 1 =&amp;gt; '华为', 2 =&amp;gt; '小米', 3 =&amp;gt; 'OPPO', 4 =&amp;gt; 'vivo', ]); });</code></pre> <h3>自定义查询</h3> <p>上面的方式会使用在选择器上选定的值,作为查询条件进行查询,但是有些情况需要更灵活的控制查询方式,那么可以使用下面的方式自定义查询:</p> <pre><code class="language-php">$selector-&amp;gt;select('price', '价格', ['0-999', '1000-1999', '2000-2999'], function ($query, $value) { $between = [ [0, 999], [1000, 1999], [2000, 2999], ]; $value = current($value); $query-&amp;gt;whereBetween('price', $between[$value]); });</code></pre> <p>如上所示,传入一个匿名函数作为第四个参数,价格字段price选择之后,将会使用匿名函数中的逻辑进行数据查询,这样你可以定义任意的查询方式。</p>

页面列表

ITEM_HTML