codebykyle / calculated-field
此包已被弃用,不再维护。未建议替代包。
Laravel Nova 的服务器端计算字段
1.1
2019-10-10 15:13 UTC
Requires
- php: >=7.1.0
- dev-master
- 1.1
- 1.0
- dev-dependabot/npm_and_yarn/express-4.18.2
- dev-dependabot/npm_and_yarn/qs-6.5.3
- dev-dependabot/npm_and_yarn/decode-uri-component-0.2.2
- dev-dependabot/npm_and_yarn/loader-utils-1.4.2
- dev-dependabot/npm_and_yarn/url-parse-1.5.10
- dev-dependabot/npm_and_yarn/path-parse-1.0.7
- dev-dependabot/npm_and_yarn/dns-packet-1.3.4
- dev-dependabot/npm_and_yarn/hosted-git-info-2.8.9
- dev-dependabot/npm_and_yarn/lodash-4.17.21
- dev-dependabot/npm_and_yarn/y18n-3.2.2
- dev-dependabot/npm_and_yarn/elliptic-6.5.4
- dev-dependabot/npm_and_yarn/ini-1.3.8
- dev-dependabot/npm_and_yarn/http-proxy-1.18.1
- dev-dependabot/npm_and_yarn/node-sass-4.14.1
- dev-dependabot/npm_and_yarn/websocket-extensions-0.1.4
This package is not auto-updated.
Last update: 2024-03-16 01:54:46 UTC
README
此包包含两个 Nova 字段,用于从 Nova 客户端执行服务器端计算。用户可以选择在表单中覆盖计算值。
有关此字段的如何使用和原因的详细说明,请访问
https://codebykyle.com/blog/laravel-nova-custom-calculated-field
安装
使用 composer 安装包
composer require codebykyle/calculated-field
示例
例如
作为一个数字
作为一个字符串
默认值
Listener 字段默认将传递给它的所有数字求和
用法
<?php use Codebykyle\CalculatedField\BroadcasterField; use Codebykyle\CalculatedField\ListenerField; class MyResource extends Resource { public function fields(Request $request) { return [ BroadcasterField::make('Sub Total', 'sub_total'), BroadcasterField::make('Tax', 'tax'), ListenerField::make('Total Field', 'total_field') ]; } }
覆盖回调
<?php use Codebykyle\CalculatedField\BroadcasterField; use Codebykyle\CalculatedField\ListenerField; class MyResource extends Resource { public function fields(Request $request) { return [ BroadcasterField::make('Sub Total', 'sub_total'), BroadcasterField::make('Tax', 'tax'), ListenerField::make('Total Field', 'total_field') ->calculateWith(function (Collection $values) { $subtotal = $values->get('sub_total'); $tax = $values->get('tax'); return $subtotal + $tax; }), ]; } }
字符串字段
<?php use Codebykyle\CalculatedField\BroadcasterField; use Codebykyle\CalculatedField\ListenerField; class MyResource extends Resource { public function fields(Request $request) { return [ BroadcasterField::make('First Name', 'first_name') ->setType('string'), BroadcasterField::make('Last Name', 'last_name') ->setType('string'), ListenerField::make('Full Name', 'full_name') ->calculateWith(function (Collection $values) { return $values->values()->join(' '); }), ]; } }
多个计算字段
<?php use Codebykyle\CalculatedField\BroadcasterField; use Codebykyle\CalculatedField\ListenerField; class MyResource extends Resource { public function fields(Request $request) { return [ BroadcasterField::make('Sub Total', 'sub_total') ->broadcastTo('total'), BroadcasterField::make('Tax', 'tax') ->broadcastTo('total'), ListenerField::make('Total Field', 'total_field') ->listensTo('total') ->calculateWith(function (Collection $values) { $subtotal = $values->get('sub_total'); $tax = $values->get('tax'); return $subtotal + $tax; }), BroadcasterField::make('Senior Discount', 'senior_discount') ->broadcastTo('discount'), BroadcasterField::make('Coupon Discount', 'coupon_amount') ->broadcastTo('discount'), ListenerField::make('Total Discount', 'total_discount') ->listensTo('discount') ->calculateWith(function (Collection $values) { $seniorDiscount = $values->get('senior_discount'); $couponAmount = $values->get('coupon_amount'); return $seniorDiscount + $couponAmount; }) ]; } }