Skip to content
This repository was archived by the owner on Mar 7, 2024. It is now read-only.

Commit f4e3f1d

Browse files
committed
Basic readme
1 parent f73fe3d commit f4e3f1d

File tree

1 file changed

+126
-0
lines changed

1 file changed

+126
-0
lines changed

readme.md

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# A Server- Side Calculated Field For Laravel Nova
2+
3+
This package contains two Nova fields required to do server-side calculations from the Nova client.
4+
5+
## Usage
6+
7+
#### Default
8+
The Listener field will by default sum all numbers passed to it
9+
10+
```php
11+
<?php
12+
13+
use Codebykyle\CalculatedField\BroadcasterField;
14+
use Codebykyle\CalculatedField\ListenerField;
15+
16+
class MyResource extends Resource
17+
{
18+
public function fields(Request $request) {
19+
return [
20+
BroadcasterField::make('Sub Total', 'sub_total'),
21+
BroadcasterField::make('Tax', 'tax'),
22+
ListenerField::make('Total Field', 'total_field')
23+
];
24+
}
25+
}
26+
```
27+
28+
#### Overriding the Callback
29+
30+
```php
31+
32+
<?php
33+
use Codebykyle\CalculatedField\BroadcasterField;
34+
use Codebykyle\CalculatedField\ListenerField;
35+
36+
class MyResource extends Resource
37+
{
38+
public function fields(Request $request) {
39+
return [
40+
BroadcasterField::make('Sub Total', 'sub_total'),
41+
BroadcasterField::make('Tax', 'tax'),
42+
43+
ListenerField::make('Total Field', 'total_field')
44+
->calculateWith(function (Collection $values) {
45+
$subtotal = $values->get('sub_total');
46+
$tax = $values->get('tax');
47+
return $subtotal + $tax;
48+
}),
49+
];
50+
}
51+
}
52+
```
53+
54+
55+
#### String Fields
56+
```php
57+
58+
<?php
59+
use Codebykyle\CalculatedField\BroadcasterField;
60+
use Codebykyle\CalculatedField\ListenerField;
61+
62+
class MyResource extends Resource
63+
{
64+
public function fields(Request $request) {
65+
return [
66+
BroadcasterField::make('First Name', 'first_name')
67+
->setType('string'),
68+
69+
BroadcasterField::make('Last Name', 'last_name')
70+
->setType('string'),
71+
72+
ListenerField::make('Full Name', 'full_name')
73+
->calculateWith(function (Collection $values) {
74+
return $values->values()->join(' ');
75+
}),
76+
];
77+
}
78+
}
79+
```
80+
81+
82+
#### Multiple Calculated Fields
83+
84+
```php
85+
86+
<?php
87+
use Codebykyle\CalculatedField\BroadcasterField;
88+
use Codebykyle\CalculatedField\ListenerField;
89+
90+
class MyResource extends Resource
91+
{
92+
public function fields(Request $request) {
93+
return [
94+
BroadcasterField::make('Sub Total', 'sub_total')
95+
->broadcastTo('total'),
96+
97+
BroadcasterField::make('Tax', 'tax')
98+
->broadcastTo('total'),
99+
100+
ListenerField::make('Total Field', 'total_field')
101+
->listensTo('total')
102+
->calculateWith(function (Collection $values) {
103+
$subtotal = $values->get('sub_total');
104+
$tax = $values->get('tax');
105+
return $subtotal + $tax;
106+
}),
107+
108+
109+
BroadcasterField::make('Senior Discount', 'senior_discount')
110+
->broadcastTo('discount'),
111+
112+
BroadcasterField::make('Coupon Discount', 'coupon_amount')
113+
->broadcastTo('discount'),
114+
115+
ListenerField::make('Total Discount', 'total_discount')
116+
->listensTo('discount')
117+
->calculateWith(function (Collection $values) {
118+
$seniorDiscount = $values->get('senior_discount');
119+
$couponAmount = $values->get('coupon_amount');
120+
121+
return $seniorDiscount + $couponAmount;
122+
})
123+
];
124+
}
125+
}
126+
```

0 commit comments

Comments
 (0)