33namespace DigitalCreative \ConditionalContainer ;
44
55use Illuminate \Database \Eloquent \Model ;
6+ use Illuminate \Support \Arr ;
67use Illuminate \Support \Collection ;
78use Illuminate \Support \Str ;
89use Laravel \Nova \Contracts \RelatableField ;
9- use Laravel \Nova \Fields \BelongsTo ;
1010use Laravel \Nova \Fields \Field ;
1111use Laravel \Nova \Http \Controllers \ResourceUpdateController ;
1212use Laravel \Nova \Http \Controllers \UpdateFieldController ;
@@ -42,7 +42,7 @@ class ConditionalContainer extends Field
4242 '=== ' , '== ' , '= ' ,
4343 'includes ' , 'contains ' ,
4444 'ends with ' , 'starts with ' , 'startsWith ' , 'endsWith ' ,
45- 'boolean ' , 'truthy '
45+ 'boolean ' , 'truthy ' ,
4646 ];
4747
4848 /**
@@ -108,14 +108,14 @@ public function resolve($resource, $attribute = null)
108108 }
109109
110110 }
111-
112- public function resolveForAction ($ request )
111+
112+ public function resolveForAction ($ request )
113113 {
114114 $ expressionsMap = $ this ->expressions ->map (function ($ expression ) {
115115 return is_callable ($ expression ) ? $ expression () : $ expression ;
116116 });
117117
118- $ this ->withMeta (['expressionsMap ' => $ expressionsMap ]);
118+ $ this ->withMeta ([ 'expressionsMap ' => $ expressionsMap ]);
119119
120120 return $ this ->resolveUsing (function () { });
121121 }
@@ -243,7 +243,7 @@ public static function splitLiteral(string $literal): array
243243
244244 $ operator = collect (self ::OPERATORS )
245245 ->filter (function ($ operator ) use ($ literal ) {
246- return strpos ($ literal, $ operator ) !== false ;
246+ return Str:: of ($ literal)-> replace ( ' -> ' , ' . ' )-> contains ( $ operator );
247247 })
248248 ->first ();
249249
@@ -254,7 +254,7 @@ public static function splitLiteral(string $literal): array
254254 return [
255255 $ attribute ,
256256 $ operator ,
257- $ value
257+ $ value,
258258 ];
259259
260260 }
@@ -270,7 +270,13 @@ public function runConditions(Collection $values): bool
270270 return $ this ->relationalOperatorLeafResolver (...$ arguments );
271271 });
272272
273- return $ resolver ($ values );
273+ return $ resolver (
274+ collect (Arr::dot ($ values ))->mapWithKeys (function ($ value , string $ key ) {
275+ return [
276+ Str::of ($ key )->replace ('. ' , '-> ' )->__toString () => $ value ,
277+ ];
278+ })
279+ );
274280
275281 });
276282 }
0 commit comments