Expected argument of type “string”, “NULL” given is very common question and seems to not be handled since Symfony 2
So if you are using forms and got such error after submit – digging to find what is causing can be very annoying. The easiest solution is to find file:
vendor/symfony/property-access/PropertyAccessor.php
and in function:
public function setValue(&$objectOrArray, $propertyPath, $value)
almost at end, just before:
self::throwInvalidArgumentException($e->getMessage(), $e->getTrace(), 0);
just add:
1 2 3 4 5 6 |
echo '<pre>'; \Doctrine\Common\Util\Debug::dump($propertyPath); \Doctrine\Common\Util\Debug::dump($value); Doctrine\Common\Util\Debug::dump($objectOrArray); echo '</pre>'; exit; |
This will cause to print all required data to find which field is causing issue. The most important is $propertyPath variable which will give you name of field:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
object(stdClass)#4165 (5) { ["__CLASS__"]=> string(45) "Symfony\Component\PropertyAccess\PropertyPath" ["elements:Symfony\Component\PropertyAccess\PropertyPath:private"]=> array(1) { [0]=> string(8) "csvField" } ["length:Symfony\Component\PropertyAccess\PropertyPath:private"]=> int(1) ["isIndex:Symfony\Component\PropertyAccess\PropertyPath:private"]=> array(1) { [0]=> bool(false) } ["pathAsString:Symfony\Component\PropertyAccess\PropertyPath:private"]=> string(8) "csvField" } |
At given example fieldname is “csvField”.