Hm… I’m confused. Looks like a bug to me.
My NodeType (I removed the irrelevant stuff):
'Foo.Bar:Test':
properties:
referenceNode:
type: reference
ui:
inspector:
editorOptions:
nodeTypes: ['Neos.Neos:Document']
referenceNodes:
type: references
ui:
inspector:
editorOptions:
nodeTypes: ['Neos.Neos:Document']
Created this node in the backend with the following nodes:
properties => array(2)
string "referenceNode" (13) => string "a2599b51-557e-4b5e-89b6-0776c17ca500" (36)
string "referenceNodes" (14) => array(3)
integer 0 => string "c5d18c75-e431-4d50-a189-d707aa90d238" (36)
integer 1 => string "4991ef71-9ec0-4908-94a2-318b29e2c67d" (36)
integer 2 => string "490e2a1b-b145-403e-865e-4638b2b65b31" (36)
Did 2 tests with the following FlowQuerys.
Working (referenceNode):
$reference = (new \Neos\Eel\FlowQuery\FlowQuery([$site]))->find('#a2599b51-557e-4b5e-89b6-0776c17ca500')->context(array('workspaceName' => 'live'))->get(0);
$node = (new \Neos\Eel\FlowQuery\FlowQuery([$site]))
->find('[instanceof Foo.Bar:Test]')
->filter('[referenceNode *= "' .$reference. '"]')
->context(array('workspaceName' => 'live'))
->get(0);
Not working (referenceNodes):
$reference = (new \Neos\Eel\FlowQuery\FlowQuery([$site]))->find('#4991ef71-9ec0-4908-94a2-318b29e2c67d')->context(array('workspaceName' => 'live'))->get(0);
$node = (new \Neos\Eel\FlowQuery\FlowQuery([$site]))
->find('[instanceof Foo.Bar:Test]')
->filter('[referenceNodes *= "' .$reference. '"]')
->context(array('workspaceName' => 'live'))
->get(0);
This leads to the “Warning”:
Warning: strpos() expects parameter 1 to be string, array given in /usr/www/users/geopard/dev/test/neos/Data/Temporary/Development/Cache/Code/Flow_Object_Classes/Neos_Eel_FlowQuery_Operations_Object_FilterOperation.php line 242
Do you see this warning, too? Or maybe I did something wrong here… not sure.
Edit://
Show Exception Log
Exception #1: Warning: strpos() expects parameter 1 to be string, array given in /usr/www/users/geopard/dev/test/neos/Data/Temporary/Development/Cache/Code/Flow_Object_Classes/Neos_Eel_FlowQuery_Operations_Object_FilterOperation.php line 242
31 Neos\Flow\Error\ErrorHandler::handleError(2, "strpos() expects parameter 1 to be string, array given", "/usr/www/users/geopard/dev/test/neos/Data/Tempor…el_FlowQuery_Operations_Object_FilterOperation.php", 242, array|3|)
30 strpos(array|3|, "Node /sites/test/node-qpm2pqkyb5hai/node-16g63b0…language=de_DE[Foo.Bar:ReferenceNode]")
29 Neos\Eel\FlowQuery\Operations\Object\FilterOperation_Original::evaluateOperator(array|3|, "*=", "Node /sites/test/node-qpm2pqkyb5hai/node-16g63b0…language=de_DE[Foo.Bar:ReferenceNode]")
28 Neos\ContentRepository\Eel\FlowQueryOperations\FilterOperation_Original::evaluateOperator(array|3|, "*=", "Node /sites/test/node-qpm2pqkyb5hai/node-16g63b0…language=de_DE[Foo.Bar:ReferenceNode]")
27 Neos\Eel\FlowQuery\Operations\Object\FilterOperation_Original::matchesAttributeFilter(Neos\ContentRepository\Domain\Model\Node, array|7|)
26 Neos\Eel\FlowQuery\Operations\Object\FilterOperation_Original::matchesFilter(Neos\ContentRepository\Domain\Model\Node, array|4|)
25 Neos\Eel\FlowQuery\Operations\Object\FilterOperation_Original::matchesFilterGroup(Neos\ContentRepository\Domain\Model\Node, array|4|)
24 Neos\Eel\FlowQuery\Operations\Object\FilterOperation_Original::evaluate(Neos\Eel\FlowQuery\FlowQuery, array|1|)
23 Neos\ContentRepository\Eel\FlowQueryOperations\FilterOperation_Original::evaluate(Neos\Eel\FlowQuery\FlowQuery, array|1|)
22 Neos\Eel\FlowQuery\FlowQuery_Original::evaluateOperations()
21 Neos\Eel\FlowQuery\FlowQuery_Original::__call("get", array|1|)
20 Foo\Bar\Command\TestCommandController_Original::testCommand()
19 call_user_func_array(array|2|, array|0|)
18 Neos\Flow\Cli\CommandController_Original::callCommandMethod()
17 Neos\Flow\Cli\CommandController_Original::processRequest(Neos\Flow\Cli\Request, Neos\Flow\Cli\Response)
16 Neos\Flow\Mvc\Dispatcher_Original::initiateDispatchLoop(Neos\Flow\Cli\Request, Neos\Flow\Cli\Response)
15 Neos\Flow\Mvc\Dispatcher_Original::dispatch(Neos\Flow\Cli\Request, Neos\Flow\Cli\Response)
14 Neos\Flow\Cli\CommandRequestHandler::Neos\Flow\Cli\{closure}()
13 Closure::__invoke()
12 Neos\Flow\Security\Context_Original::withoutAuthorizationChecks(Closure)
11 Neos\Flow\Security\Context::withoutAuthorizationChecks(Closure)
10 call_user_func_array(array|2|, array|1|)
9 Neos\Flow\Security\Context::Flow_Aop_Proxy_invokeJoinPoint(Neos\Flow\Aop\JoinPoint)
8 Neos\Flow\Aop\Advice\AdviceChain::proceed(Neos\Flow\Aop\JoinPoint)
7 Neos\Flow\Session\Aspect\LazyLoadingAspect_Original::callMethodOnOriginalSessionObject(Neos\Flow\Aop\JoinPoint)
6 Neos\Flow\Aop\Advice\AroundAdvice::invoke(Neos\Flow\Aop\JoinPoint)
5 Neos\Flow\Aop\Advice\AdviceChain::proceed(Neos\Flow\Aop\JoinPoint)
4 Neos\Flow\Security\Context::withoutAuthorizationChecks(Closure)
3 Neos\Flow\Cli\CommandRequestHandler::handleRequest()
2 Neos\Flow\Core\Bootstrap::run()
1 require("/usr/www/users/geopard/dev/test/neos/Packages/Framework/Neos.Flow/Scripts/flow.php")